Soucis dans mon code
samedi 18 mars 2017 à 14:49En supposant que tu utilises fluxbb.
C'est la ligne suivante qui provoque manifestement une erreur :
$result = $db->query('SELECT id, word FROM '.$db->prefix.'search_words WHERE word IN(\''.implode('\',\'', array_map(array($db, 'escape'), $unique_words)).'\')', true) or error('Unable to fetch search index words', FILE, LINE, $db->error());
Sur la première capture d'écran, on constate l'erreur "Illegal mix of collations...", il y a donc des chances que dans le tableau $unique_words, il y ait des mots encodés en utf8 sur une requête qui va taper sur une colonne (search_words."word") en latin.
Si le problème est récent, il peut tout à fait venir d'une mise à jour (soit de php soit de mysql), vu que tu as l'air de passer par un hébergement mutualisé, le fournisseur a très bien pu monter de version l'un ou l'autre des logiciels.
Peut-être que la solution de ce topic peut marcher si tu mets à jour ta base de données fluxbb (pense à faire une copie de la base de données avant) :
http://stackoverflow.com/questions/1008287/illegal-mix-of-collations-mysql-error
==> Je suis passé d'une version PHP 5.4... à une version 5.6.21 Chez mon hébergeur je me retrouve avec une erreur comme cella la:
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/u390222288/public_html/include/parser.php on line 339
dans le parser.php, j'ai ça à la ligne 339:
// Make hyperlinks clickable
//
function do_clickable($text)
{
global $pun_user;
$text = ' '.$text;
$text = preg_replace('#([\s\(\)])(https?|ftp|news){1}://([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^"\s\(\)<\[]*)?)#ie', '\'$1\'.handle_url_tag(\'$2://$3\')', $text);
$text = preg_replace('#([\s\(\)])(www|ftp)\.(([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^"\s\(\)<\[]*)?)#ie', '\'$1\'.handle_url_tag(\'$2.$3\', \'$2.$3\')', $text);
return substr($text, 1);
(Permalink)
C'est la ligne suivante qui provoque manifestement une erreur :
$result = $db->query('SELECT id, word FROM '.$db->prefix.'search_words WHERE word IN(\''.implode('\',\'', array_map(array($db, 'escape'), $unique_words)).'\')', true) or error('Unable to fetch search index words', FILE, LINE, $db->error());
Sur la première capture d'écran, on constate l'erreur "Illegal mix of collations...", il y a donc des chances que dans le tableau $unique_words, il y ait des mots encodés en utf8 sur une requête qui va taper sur une colonne (search_words."word") en latin.
Si le problème est récent, il peut tout à fait venir d'une mise à jour (soit de php soit de mysql), vu que tu as l'air de passer par un hébergement mutualisé, le fournisseur a très bien pu monter de version l'un ou l'autre des logiciels.
Peut-être que la solution de ce topic peut marcher si tu mets à jour ta base de données fluxbb (pense à faire une copie de la base de données avant) :
http://stackoverflow.com/questions/1008287/illegal-mix-of-collations-mysql-error
==> Je suis passé d'une version PHP 5.4... à une version 5.6.21 Chez mon hébergeur je me retrouve avec une erreur comme cella la:
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/u390222288/public_html/include/parser.php on line 339
dans le parser.php, j'ai ça à la ligne 339:
// Make hyperlinks clickable
//
function do_clickable($text)
{
global $pun_user;
$text = ' '.$text;
$text = preg_replace('#([\s\(\)])(https?|ftp|news){1}://([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^"\s\(\)<\[]*)?)#ie', '\'$1\'.handle_url_tag(\'$2://$3\')', $text);
$text = preg_replace('#([\s\(\)])(www|ftp)\.(([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^"\s\(\)<\[]*)?)#ie', '\'$1\'.handle_url_tag(\'$2.$3\', \'$2.$3\')', $text);
return substr($text, 1);
(Permalink)