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