1 查询批量更新用户数组使用 PDO

Dan*_* P. 1 php mysql pdo

我目前正在遍历一个数组以一次更新一行,例如:

for ($i = 0; $i < count($users); $i++) {
    $query = "UPDATE users SET name = :name WHERE id = :id";
    $statement = $pdo_conn->prepare($query);
    $result = $statement->execute('name' => $users[$i]['name'], 'id' => $users[$i]['id']);
}
Run Code Online (Sandbox Code Playgroud)

有什么办法可以进行这 1 个查询,或以任何方式进行优化?

小智 6

使用 foreach() 并迭代 $users 数组,绑定值并执行数组内的语句

$stmt = $pdo->prepare('UPDATE users SET name = :name WHERE id = :id');
foreach($users as $user)
{
    $stmt->bindValue(':name', $user['name']);
    $stmt->bindValue(':id', $user['id']);
    $stmt->execute();
}
Run Code Online (Sandbox Code Playgroud)