BindParam用于插入多个值

时间:2017-03-02 03:15:51

标签: php mysqli

假设我对user,form和ownerID有价值。用户的值保持不变,但ownerID可能会不时变化。

例如:

$user = "Farhana"; // fix value
$form = "Registration"; // fix value
$ownerID = array("23","50","33"); // item in array not fix, may have many ownerID

然后我想用这样的单个sql语句插入多个值。

INSERT INTO messages (user,ownerID,form) VALUES ("Farhana","23","Registration"),("Farhana","50","Registration"),("Farhana","33","Registration");

所以我提出了foreach解决方案,但我不确定这是否正确。

// prepare
$stmt = $this->conn->prepare("INSERT INTO messages (user,ownerID,form) VALUES (?,?,?)");
// bind param
foreach ($ownerID as $ID){
    $stmt->bind_param("sss",$user,$ID,$form);
    $stmt->execute();
}

1 个答案:

答案 0 :(得分:0)

这并不重要,但为了清楚起见,必须只调用一次bind_param。

$stmt = $this->conn->prepare("INSERT INTO messages (user,ownerID,form) VALUES (?,?,?)");
$stmt->bind_param("sss",$user,$ID,$form);
foreach ($ownerID as $ID){
    $stmt->execute();
}