je développe un programme et il fonctionne très bien avec WAMP sous Windows 10. Je souhaite basculer sous Ubuntu. J'ai installé LAMP, importé la BDD, copier les fichiers et là ... c'est le drame :
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OF = NULL, BR = NULL, DHDebut = NULL' at line 2 in /var/www/html/pages/acceuil.php:44 Stack trace: #0 /var/www/html/pages/acceuil.php(44): PDOStatement->execute() #1 /var/www/html/index.php(48): require_once('...') #2 {main} thrown in/var/www/html/pages/acceuil.phpon line44
Pourtant je n'ai rien changé au code :
// PTRO
$sqlQuery = 'SELECT Clef_Collaborateur, Nom, Prenom FROM collaborateur';
$collaboStatement = $mysqlClientPTRO->prepare($sqlQuery);
$collaboStatement->execute();
$collabo = $collaboStatement->fetchALL();
// On réinitialise toutes les colonnes OF, BR et Temps
$varNull = NULL;
$sqlQuery = 'UPDATE collaborateur
SET OF = :OF, BR = :BR, DHDebut = :DHDebut';
$brEnCoursStatement = $mysqlClientPTRO->prepare($sqlQuery);
$brEnCoursStatement->execute([
'OF' => $varNull,
'BR' => $varNull,
'DHDebut' => $varNull
]);
Merci d'avance
- Edité par Lutine MP Power 13 février 2024 à 11:58:29
C'est surtout que tu n'as pas la même version de MySQL entre les 2 environnements.
=> of est devenu un mot-clef réservé depuis MySQL 8.0.1, pour qu'il perde ce caractère il faut l'entourer de backticks (`) mais il serait préférable à long terme de renommer la colonne parce que la prochaine fois que tu n'en mets pas, ça plantera de la même façon.
C'est surtout que tu n'as pas la même version de MySQL entre les 2 environnements.
=> of est devenu un mot-clef depuis MySQL 8.0.1, pour qu'il perde ce caractère il faut l'entourer de backticks (`) mais il serait préférable à long terme de renommer la colonne parce que la prochaine fois que tu n'en mets pas, ça plantera de la même façon.
- Edité par julp il y a 18 minutes
Merci beaucoup, il fallait le savoir, je te remercie de cette infos, je vais modifier le soft en conséquence.
Erreur de syntaxe MYSQL sous LAMP
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli