Pages : 1
#1 Le 29/06/2007, à 16:36
- garo
(Résolut) Mysql: Adapter une comande "sql_" en "sqli_"
Bonjour
Bon, il ya quelque temps j'avais commencé mon site en php4 (sous wamp), et maintenant que j'ai presque finit (et que surtout je veux finir sous linux), je me rend compte que je dois l'adapter en Php5.
Je cherche de mon coté, j'ai adapté déjà certaines requêtes, mais il y a en une (et comme par hasard c'est celle dont j'ai besoin) qui m'échappe:
mysql_query("SET NAMES 'utf8'");
Il faut que je rende ça compatible en php5.
J'ai besoin absolument de ça, pour que les charactère utf8 de ma base s'affiche correctement (c'est du japonais qui est stocké).
Merci à ceux qui auront pitié de mes neurones fatigués...
Dernière modification par garo (Le 01/07/2007, à 11:31)
Hors ligne
#2 Le 29/06/2007, à 17:44
- coca25
Re : (Résolut) Mysql: Adapter une comande "sql_" en "sqli_"
bonjour,
cette commande marche parfaitement sous php5, si erreur il y a, elle serait du coté mysql:
mysql_query("SET NAMES 'utf8'") or die (mysql_error ());
pour voir l'erreur générée
Dernière modification par coca25 (Le 29/06/2007, à 17:44)
Hors ligne
#3 Le 30/06/2007, à 02:53
- garo
Re : (Résolut) Mysql: Adapter une comande "sql_" en "sqli_"
HUm, en fait je n'ai pas de message d'erreur.
Tout mes textes japonais n'appraisent plus que sous la forme "????????"
Au début j'avais fait pas mal de recherche pour régler ça, et c'était cette merveilleuse formule magique!
C'étais lié au fait que les accès vers SQL ne se faisaient pas en UTF8...
Maintenant elle ne marche plus?!!?
Ho rage, ho despoir!!!!
Tout marchait bien jusqu'à ce je remplace mes commandes sql_* en sqli_*
Voilà les passages où je vais chercher mes valeurs dans la base:
EN gros, mon site est trilingue: francais, anglais et japonais, et toute les traduction sont dans la table admin_cst.
....
$dbHost = "localhost";
$dbUser = "root";
$dbPass = "**********";
$dbName = "shinamono";
$connexion = mysqli_connect($dbHost,$dbUser,$dbPass,$dbName);
mysql_query("SET NAMES 'utf8'");
....
for ($itab = 0; $itab != $Imax; $itab++ ) {
$query="SELECT * FROM admin_cst WHERE Cat = '$tab[$itab]'";
$req =mysqli_query($connexion ,$query)or die('Erreur mysql : '.mysqli_error($connexion));
$row = mysqli_fetch_assoc($req);
$Cat = $row['Cat'];
$Ref[]= $row['Ref'];
$CST_Lang = stripslashes ($row[$_SESSION['Langue']]);
$Visible = $row['Visible'];
$Active = $row['Active'];
$PICTURE = $row['Picture'];
switch ($Visible){case 0 :
$Visibled =' ';
break;
case 1 :
$Visibled ='checked';
break;
};
$Active = $row['Active'];
switch ($Active){case 0 :
$Actived =' ';
break;
case 1 :
$Actived ='checked';
break;
};
//valeur stockees dans les tableaux
$Lang_tab[] = $CST_Lang;
$Showed[] = $Visible;
$PICT[] = $PICTURE;
$Enabled[] = $Active;
$Cat_Base[] = $Cat ;
}
Là je suis vraiment dans la M****
J'ai voulut me la jouer "pro" et finalement, je crois que ça aurait plus simple de faire de simples pages statiques....
Comment forcer avec des commandes SQLI les échanges en UTF8????
Dernière modification par garo (Le 30/06/2007, à 02:54)
Hors ligne
#4 Le 01/07/2007, à 11:29
- garo
Re : (Résolut) Mysql: Adapter une comande "sql_" en "sqli_"
Bon, finalement j'ai enfin trouvé (je cherchais depuis un moment):
Pour forcer l'affichage la récupération et l'affichage, avec une commande sqli_:
Si:
mysql_query("SET NAMES 'utf8'");
ne marche plus, essayez:
En sqli:
$connexion = mysqli_connect($dbHost,$dbUser,$dbPass,$dbName);
mysqli_query($connexion,"SET NAMES 'utf8'");
Vive l'obsolescence du code....:/
Avant, il prenait la derniere connection de faite par défaut, maintenant il faut le prendre par la main et lui donner le biberon.
Hors ligne