Php 插入值列表与列列表不匹配,语句和DB是否对应?
我正在处理添加其他用户的页面,当我想插入新用户时,会出现以下情况:Php 插入值列表与列列表不匹配,语句和DB是否对应?,php,mysql,pdo,Php,Mysql,Pdo,我正在处理添加其他用户的页面,当我想插入新用户时,会出现以下情况: 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/ht
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
通常,当我在prepare语句中的某个地方漏掉一个逗号,或者该语句与我的DB表不对应时,就会弹出这个消息,但这次,我相信这些都没有发生
这是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']));
我不相信那里有什么问题
这是我的DB表:
再说一遍,我相信这一切都吻合
那么,为什么会出现如此大的错误而不是因为默认原因呢
谢谢。您可以尝试在希望插入的列中写入内容。由于您的ID是自动递增的,所以在尝试向该字段插入空字符串时可能会出错
$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']));
id是否自动递增?如果是,为什么还要将第一个值添加为空值?刚刚了解到一些MySQL服务器启用了模式。请参阅不确定这是否是您的问题,但尝试交换您的引号->
“插入到用户值(“”,…”
)。