Lors de l'utilisation de PHP 5, les valeurs obtenues via la requête MySQL deviennent toutes « ??????? ». Il s'avère que le jeu de caractères est mal défini.
Lorsque j'ai installé MySQL 5, j'ai sélectionné le jeu de caractères par défaut comme gb2312, mais il a toujours renvoyé des caractères tronqués. La solution consiste à appeler une instruction "set names X" qui est la même que le jeu de caractères défini après la connexion au serveur MySQL ( X est votre jeu de caractères défini). Ci-dessous ma fonction de connexion :
function sql_connect() {
global $MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DATABASE;
$connection = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD) ou startUpError('<p>Impossible de se connecter à la base de données MySQL.</p>','Connect Erreur');
si (!mysql_select_db($MYSQL_DATABASE))
{
include'install.php';
doInstall();
mysql_select_db($MYSQL_DATABASE) ou startUpError('<p>Impossible de sélectionner la base de données : '. mysql_error().'</p>', 'Erreur de connexion');
}
sql_query('set names "gb2312"'); //sql_query est une fonction de requête d'exécution personnalisée, la clé est cette instruction
renvoie $connexion ;
}