PDO准备语句:替换列的值

How do you use prepared statements and bound parameters to replace a value in a column? For example,

$stmt = "UPDATE users SET name = :name
    WHERE name = :name";

$stmt->bindParam(:name, $oldName);
$stmt->bindParam(:name, $newName);
$stmt->execute();

You can't use same named bind parameters within prepare statement your parameters name must be unique as

$stmt = $connection->prepare("UPDATE users SET name = :newName
    WHERE name = :oldName");

$stmt->bindParam(':oldName', $oldName);
$stmt->bindParam(':newName', $newName);

You have to use different placeholder:

$stmt = $dbh->prepare("UPDATE users SET name = :newname
    WHERE name = :oldname")
$stmt->bindParam(':oldname', $oldName);
$stmt->bindParam(':newname', $newName);
$stmt->execute();