Je tire vraiment mes cheveux sur celui-ci. J'ai une section de commentaire simple sur mon application PHP auto-construite et je veux simplement ajouter une nouvelle ligne si j'attrape un paramètre $ _GET. Mais peu importe comment je construis la requête d'insertion de MySQL, j'obtiens une erreur.PHP MySQL erreur sur INSERT
C'est ce que j'ai jusqu'à présent:
if(isset($_GET['r'])){
$replyid = mysql_real_escape_string($_GET['r']);
$sentnow = date("Y-m-d H:i:s");
mysql_query("INSERT INTO eis_inbox (messageid, toid, from, contact, seen, message, date) VALUES (NULL, '".$replyid."', 'TESTUSER', 'CONTACTINFO', '0', 'MESSAGE', '".$sentnow."'") or die(mysql_error());
echo '<meta http-equiv="refresh" content="0;/messages">';
}
Mes champs MySQL DB sont appelés exactement les mêmes: messageid (auto_increment), Toid (INT11), de (varchar255), contact (varchar255), vu (int3), message (texte) et date (timestamp/CURRENT_TIMESTAMP).
L'exécution de la page ci-dessus avec, disons « index.php r = 777? » Devrait, comme je le vois, peupler mon MySQL avec une nouvelle ligne en tant que tel:
messageid = (AUTO_INCREMENT)
toid = 777
from = TESTUSER
contact = CONTACTINFO
seen = 0
message = MESSAGE
date = 2013-01-17 11:50:01
Au lieu de cela, je reçois le texte suivant erreur:
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 'from, contact, seen, message, date) VALUES (NULL, '1', 'TESTUSER', 'CONTACTINFO'' at line 1
Même erreur affichée avec "error_reporting (E_ALL)". J'ai regardé ceci pendant plusieurs jours maintenant, et je ne peux juste pas trouver l'erreur ... Peut-être que je suis aveugle et manque une virgule ou une balise fermante ou quelque chose. Des idées?
S'il vous plaît, ne pas utiliser les fonctions mysql_ * dans le nouveau code. Ils ne sont plus entretenus et sont officiellement désapprouvés. En savoir plus sur les instructions préparées à la place, utilisez PDO ou MySQLi – Afsar
Je ne suis pas sûr que $ replyid est un int dans votre base de données, mais si c'est le cas, vous ne devriez pas utiliser les symboles '' autour de lui. (uniquement pour les chaînes) –
Assurez-vous que le type de données pour le champ vu, soit varchar, ou supprimez le '' autour de la valeur pour cela. – Kao