这是一个相当基本的PHP PDO代码段,它访问名为“Users”的MySQL表,并使用预准备语句和多个绑定向其中插入数据行:
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// prepare sql and bind parameters
$stmt = $conn->prepare("INSERT INTO Users (firstname, lastname, email)
VALUES (:firstname, :lastname, :email)");
$stmt->bindParam(':firstname', $firstname);
$stmt->bindParam(':lastname', $lastname);
$stmt->bindParam(':email', $email);
// insert a row
$firstname = "John";
$lastname = "Doe";
$email = "john@example.com";
$stmt->execute();
// insert another row
$firstname = "Mary";
$lastname = "Moe";
$email = "mary@example.com";
$stmt->execute();
....
可以看出,这涉及无限数量的查询,因为每个row-insert都有自己的execute()。我试图减少查询的数量,我的目标是让一个循环为所有插入的记录创建一个INSERT查询。可能吗?没有准备好的声明,这很容易,我可以使它工作,但我迷失了准备。
答案 0 :(得分:0)
足以将字符串与逗号(,)连接起来作为一个参数。
$stmt->bindParam(':firstname', $firstname[0] . ',' . $firstname[1]);