我试图在this question中使用staticsan的答案来准备陈述。 让我们举个例子:
$stmt = $mysqli->prepare("INSERT INTO something (userid, time, title) VALUES (?, ?, ?)");
$stmt->bind_param('iis', $userid, time(), $title);
$stmt->execute();
在staticsan的回答中,将数组添加到mysql语句中,这样我们最终只需一个语句就可以将多个数据插入到数据库中。 在我的例子中如何做到这一点?
答案 0 :(得分:6)
这完全有效:
$stmt = $mysqli->prepare("INSERT INTO something (userid, time, title) VALUES (?, ?, ?)");
$stmt->bind_param('iis', $userid, time(), $title);
$stmt->execute();
$stmt->bind_param('iis', $userid, time(), $title);
$stmt->execute();
$stmt->bind_param('iis', $userid, time(), $title);
$stmt->execute();
$stmt->bind_param('iis', $userid, time(), $title);
$stmt->execute();
您可以在每次插入,绑定和执行时覆盖您的数组值。它不会像您链接的示例中的批量插入一样快,但它会更安全。
答案 1 :(得分:2)
您可以使用此处提到的代码构建预准备语句,
PDO Prepared Inserts multiple rows in single query
PHP逻辑有点像,
[https://jsfiddle.net/rcet5btw/][1]
答案 2 :(得分:-1)
查询如下所示:
INSERT INTO people (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29)