PHP / MySQL - PDO UPDATE的任何简写等价物?

时间:2014-04-02 14:53:44

标签: php mysql

我正在从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次。我没有留下深刻的印象!是否有更快的方式来写这个?

1 个答案:

答案 0 :(得分:6)

您可以通过在bindParam的调用中添加一系列参数来省略execute来电:

$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));