我正在撞墙,试图弄清为什么这个PDO准备语句不起作用。我唯一可以总结的是,如果一个变量是空的,那么INSERT失败了,但这是令人困惑的,因为我必须在没有问题的情况下完成了这一千次。用PDO准备好的语句在MySQL中插入空变量
这是我的代码。所有变量都是从POST变量中设置的,所以如果用户没有提供这些数据,其中一些变量可能是空的。
$stmt = $db->prepare("INSERT INTO students
(id, classid, userid, firstname, surname, form, gender)
VALUES ('', :classid, :userid, :firstname, :surname, :form, :gender)");
$stmt->execute(array(':userid' => $userid, ':classid' => $classid, ':firstname' => $firstname, ':surname' => $surname, ':form' => $form, ':gender' => $gender));
是否有某种方法告诉它如果变量为空时插入一个空字段?
编辑:要清楚,这不是一个新的说法。我之前一直使用毫无准备的MySQLi进行INSERT,并且只是将这些代码更新为PDO。
编辑2:我的架构:
id int(11) NO PRI auto_increment
encryption int(1) NO
classid int(11) NO
googleclassroom varchar(50) NO
userid varchar(50) NO
firstname varchar(100) NO
surname varchar(100) NO
form varchar(10) NO
gender varchar(10) NO
colour_code varchar(10) NO
col1 varchar(50) NO
col2 varchar(50) NO
col3 varchar(50) NO
col4 varchar(50) NO
col5 varchar(50) NO
col6 varchar(50) NO
col7 varchar(50) NO
timestamp datetime NO
你不工作的人是什么?你有什么错误吗?你能记录SQL异常吗? –
用户提供所有值时可以插入值吗? – Billa
这不是插入行。没有错误,但我不确定我是否设置了报告错误。 – Rob