PHP/MySQL - PDO更新的任何速记等价物


PHP/MySQL - any shorthand equivalent for PDO UPDATE?

我正在从mysql_query迁移到PDO,并且正在努力找到一种更简洁的方式来编写当前的内容:

mysql_query("UPDATE user SET session = '$session'  WHERE email='$email'");

标准的PDO等价物似乎是这样的:

$sth = $conn->prepare("UPDATE user SET session = :session WHERE email = :$email");
$sth->bindParam(':session', $session);
$sth->execute();

这引入了 2 行新代码,并且必须键入"session"4 次,而不是此示例中的 2 次。我不为所动!有没有更快的方法来写这个?

您可以通过在

execute的调用中放置参数数组来省略bindParam调用:

$sth = $conn->prepare("UPDATE user SET session = :session WHERE email = :email");
$sth->execute(array(':session' => $session, ':email' => $email));

我不太喜欢它,但如果你不想写这么多次"会话"和"电子邮件",你可以使用位置参数而不是命名参数:

$sth = $conn->prepare("UPDATE user SET session = ? WHERE email = ?");
$sth->execute(array($session, $email));