J'essaie d'insérer dans ma base de données MySQL. La première colonne est la colonne 'id', puisque c'est un champ auto_increment, je l'ai laissée en blanc. Pour une raison quelconque, je suis incapable d'insérer et je reçois l'erreur mentionnée ci-dessous. J'apprécie toute aide avec ceci.
J'obtiens l'erreur suivante en essayant d'insérer:
Incorrect integer value: '' for column 'id' at row 1
ma requête
$insertQuery = "INSERT INTO workorders VALUES('', '$priority', '$requestType', '$purchaseOrder', '$nte', '$jobSiteNumber')";
Cela signifie probablement que votre id
est un AUTO_INCREMENT
entier et vous essayez d'envoyer une chaîne. Vous devez spécifier une liste de colonnes et l'omettre de votre INSERT
.
INSERT INTO workorders (column1, column2) VALUES ($column1, $column2)
Laisser MySql générer des numéros de séquence pour un AUTO_INCREMENT
_ champ vous avez trois options:
.6.9. Utilisation de AUTO_INCREMENT :
... Aucune valeur n'ayant été spécifiée pour la colonne AUTO_INCREMENT, MySQL a attribué automatiquement les numéros de séquence. Vous pouvez également attribuer explicitement [~ # ~] null [~ # ~] ou 0 à la colonne pour générer des numéros de séquence.
Ces trois déclarations produiront le même résultat:
$insertQuery = "INSERT INTO workorders (`priority`, `request_type`) VALUES('$priority', '$requestType', ...)";
$insertQuery = "INSERT INTO workorders VALUES(NULL, '$priority', ...)";
$insertQuery = "INSERT INTO workorders VALUES(0, '$priority', ...";
Essayez d’éditer votre my.cf, commentez le sql_mode d’origine et ajoutez sql_mode = "".
vi /etc/mysql/my.cnf
sql_mode = ""
sauvegarder et quitter...
service mysql restart
Cela est dû au fait que votre type de colonne d'envoi de données est entier et que vous lui envoyez une valeur de chaîne.
Ainsi, la manière suivante a fonctionné pour moi. Essayez avec celui-ci.
$insertQuery = "INSERT INTO workorders VALUES (
null,
'$priority',
'$requestType',
'$purchaseOrder',
'$nte',
'$jobSiteNumber'
)";
N'utilisez pas 'null'
. utilisez-le comme null
sans guillemets simples.
Pour la même erreur dans wamp/phpmyadmin
, J'ai édité my.ini
, commenta l'original:
;sql-mode= "STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER"
et ajouté sql_mode = ""
.