2017-07-10 97 views
-1

我想插入一个记录到2列的表,但我得到这个错误。 我的错误在部分执行中开始。任何人都可以帮助我解决这个问题? 我正在使用PDO。插入值不匹配列列表:1136

我的代码:

global $conn_kl; 
$sql = $conn_kl->prepare("INSERT INTO order_producten VALUES (?,?)"); 
$sql->execute(array($product_id, $bewerking_id)); 
+3

在这样的查询指定列名称:INSERT INTO order_producten'(column_name1,column_name2)'VALUES( ?,?) –

+0

可以显示'order_producten'的结构吗? –

+0

我在前面的代码中发现了一个愚蠢的错误,感谢您的帮助! – jol123

回答

0

order_producten将有多于或少于两列,并要设置只有两个值。
请指定表名后面的列。例如,

INSERT INTO order_producten(id, name) VALUES(?, ?) 
+0

谢谢你的回答。我的表只有2列,我想设置2个值。我被遗忘说我使用PDO和早期创建的具有相同代码的函数为我工作。所以这个解决方案不适合我。 – jol123

+0

@ jol123:然后必须有一些其他查询失败,而不是这一个。因为错误消息很明显,插入值与列表不匹配。 –

+0

只有当我执行这个函数时,它会给我那个错误。在我尝试执行之前,我的代码中可能有错误吗? – jol123

1

问题就在这里:

INSERT INTO order_producten VALUES (?,?) 

这里列在此查询中定义的,在这种情况下,预计你必须通过所有的值表格中的列。但是你要插入的值只有2列,所以请请注明像列名:

INSERT INTO order_producten(column_name1, column_name2) VALUES (?,?) 
-1

例如,代码这样的事情是为我工作:

global $conn_kl; 
    $sql = $conn_kl->prepare("INSERT INTO `order_bewerkingen` VALUES (null, ?, ?, ?)"); 
    $sql->execute(array($order_id, $method, $position)); 
+0

这不是 - 在回答问题时,需要将其添加到问题本身中。请将其删除 –

相关问题