[SPIP Zone] Accès à une base externe avec SPIP 3.1

Bonjour à tous

Je tente de migrer mes sites en SPIP3.1. Dans certains squelettes, je boucle sur une base externe THELIA.

1ère découverte : en bouclant sur une table « image » externe, je récupère un #FICHIER. SPIP ajoute « IMG/ » au résultat. Je suis contraint de remplacer par #FICHIER* pour éviter cette interprétation.

2ème problème : Les chaines extraites des bases externes se voient remplacer leurs caractères accentués par des points d’interrogation. Problème d’encodage. Pourtant, tout est en UTF8, les squelettes, la base, etc. Et il n’y avait pas cette anomalie en SPIP3.0.

De plus, dans le fichier de connection à la base externe, j’ai bien mysql_query(« SET NAMES UTF8 »);

Qu’est-ce qui a changé en 3.1 concernant l’accès aux bases externes ?

MERCI pour votre aide.

Hello,

À partir de SPIP 3.1 on utilise mysqli et plus mysql donc ce serait plutôt
mysqli_query("SET NAMES UTF8")

Mais cela dit je te conseille plutot de renseigner dans spip_meta la ligne
nom=charset_sql_connexion
valeur=utf8
impt=oui

ça sera plus robuste et durable (et du coup tu peux supprimer cette ligne SET NAMES dans le connect)

--
Cédric

On 22 janv. 2018 à 20:03 +0100, Bruno CAILLARD <bruno.caillard@free.fr>, wrote:

mysql_query("SET NAMES UTF8");

Je ne n’avais pas bien recherché avant de poser ma question.
En réalité, il existe un 9ème paramètre dans la fonction spip_connect_db qui permet de spécifier le charset. Et cela fonctionne très bien.
Dommage que cette possibilité ne soit pas encore bien documentée.

Il reste la problèmatique de l’interprétation de #FICHIER qui ajoute /IMG dans le cas d’un fichier image. Facile à corriger mais je me demande si cette interprétation est vraiment volontaire dans le cas de l’accès à une base externe ?

Hop,

Le 23/01/2018 à 11:46, Bruno CAILLARD a écrit :

Je ne n'avais pas bien recherché avant de poser ma question.
En réalité, il existe un 9ème paramètre dans la fonction spip_connect_db
qui permet de spécifier le charset. Et cela fonctionne très bien.
Dommage que cette possibilité ne soit pas encore bien documentée.

C'est vraiment dommage oui :stuck_out_tongue:

https://code.spip.net/autodoc/tree/ecrire/base/connect_sql.php.html#function_spip_connect_db

Mais il est vrai que tu pourrais proposer de compléter la doc suivante :

Merci d'avance :slight_smile:

++
b_b

Je vais de ce pas m’inscrire et proposer une modif