当插入新记录与自动递增的ID列的表,它通常是足以给ID字段中的NULL值或从INSERT查询忽略它,因为在解释如何插入新的自动增量ID
INSERT INTO `database`.`table` (`id`, `user`, `result`) VALUES (NULL, 'Alice', 'green')");
要么
INSERT INTO `database`.`table` (`user`, `result`) VALUES ('Alice', 'green')");
我的问题是 - 使用预处理语句时,你怎么做同样的事情。 我曾尝试以下,使用NULL:
$stmt = $db->prepare("INSERT INTO `db` (id, name, password, text) VALUES (NULL, ?, ?, ?)");
$stmt->bind_param('sss', $name, $password, $text);
$stmt->execute();
和fowllowing,省略ID字段:
$stmt = $db->prepare("INSERT INTO `test_db` (name, password, text) VALUES (?, ?, ?)");
$stmt->bind_param('sss', $name, $password, $text);
$stmt->execute();
当我运行此我得到什么插入并在浏览器中没有错误消息。 我想这是因为它试图插入重复值的ID字段(stackoverflow.com/questions/12179770/...) - 但为什么它应该做的是,当这似乎相当于插入数据的非编写语句的方法,然后给没有消息,我不知道。
任何想法非常欢迎!