[英]Insert value list does not match column list, statement and DB are corresponding?
I'm working on this page where other users are added, when I want to insert a new user, this is what comes up: 我正在此页面上添加其他用户,当我想插入新用户时,会出现以下情况:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[21S01]: Insert value list does not match column list:
1136 Column count doesn't match value count at row 1' in /Applications/XAMPP/xamppfiles/htdocs/app/classes/class.users.php:96 Stack trace: #0
/Applications/XAMPP/xamppfiles/htdocs/app/classes/class.users.php(96): PDO->prepare('INSERT INTO use...') #1
/Applications/XAMPP/xamppfiles/htdocs/public/pages/nieuweklant.tpl(4): DeGier\Core\Users::addCus() #2
/Applications/XAMPP/xamppfiles/htdocs/app/classes/class.template.php(20): include('/Applications/X...') #3
/Applications/XAMPP/xamppfiles/htdocs/app/classes/class.template.php(48): DeGier\Core\Template::getPage('nieuweklant') #4
/Applications/XAMPP/xamppfiles/htdocs/index.php(11): DeGier\Core\Template::render('nieuweklant') #5 {main}
thrown in /Applications/XAMPP/xamppfiles/htdocs/app/classes/class.users.php on line 96
Normally, this pops up when I've missed a comma somewhere in the prepare statement, or if the statement isn't corresponding to my DB table, but this time, I believe that none of that has happened. 通常,当我在prepare语句中的某个地方缺少逗号时,或者如果该语句与我的数据库表不对应时,会弹出此消息,但是这次,我认为这一切都没有发生。
This is the PDO Statement: 这是PDO声明:
$q = self::$connection->prepare('INSERT INTO users VALUES ("",
:fname, :lname,
:company, :telephone, :email, :adress, :zipcode,
:country, :note)');
$q->execute(array(":fname" => $_POST['voornaam'], ":lname" =>
$_POST['achternaam'], ":company" => $_POST['bedrijf'], ":telephone" =>
$_POST['telefoon'], ":email" => $_POST['email'], ":adress" =>
$_POST['adres'], ":zipcode" => $_POST['postcode'], ":country" =>
$_POST['land'], ":note" => $_POST['aantekening']));
I don't believe there's anything wrong there. 我不相信那里有什么问题。
Here is my DB table: 这是我的数据库表:
Again, I believe it all matches up. 再次,我相信这一切都匹配。
So, how is it possible that such a big error comes up for none of the default reasons? 因此,怎么可能会由于默认原因而导致如此大的错误呢?
Thanks. 谢谢。
You could try writing in the columns that you wish to insert to. 您可以尝试在要插入的列中编写。 Since your ID is AUTO INCREMENT, it might go wrong when you try to insert an empty string to that field.
由于您的ID为AUTO INCREMENT,因此当您尝试向该字段插入空字符串时,它可能会出错。
$q = self::$connection->prepare('INSERT INTO users (firstname, lastname, company, phone, email, adress, zipcode, country, note) VALUES ("",
:fname, :lname,
:company, :telephone, :email, :adress, :zipcode,
:country, :note)');
$q->execute(array(":fname" => $_POST['voornaam'], ":lname" =>
$_POST['achternaam'], ":company" => $_POST['bedrijf'], ":telephone" =>
$_POST['telefoon'], ":email" => $_POST['email'], ":adress" =>
$_POST['adres'], ":zipcode" => $_POST['postcode'], ":country" =>
$_POST['land'], ":note" => $_POST['aantekening']));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.