我目前正在以这种方式更新我的数据库
$db = new PDO('mysql:host=localhost;dbname=database;charset=utf8', 'username', 'password');
$updo = $db->prepare("UPDATE table SET weight = :weight WHERE height = 28");
$updo->execute(array(':weight' => $weight));
这是正确的程序吗?有什么改进建议吗?在 PHP 手册中,他们这样写 prepare 语句
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
这个额外的数组让我很困惑。我是第一次使用 PDO,所以想把事情搞清楚。
最佳答案
您的方法会起作用,但默认情况下会将绑定(bind)参数转义为字符串。我认为最佳做法是使用 bindParam指定 $weight
应该是一个整数,如下所示:
$db = new PDO('mysql:host=localhost;dbname=database;charset=utf8', 'username', 'password');
$updo = $db->prepare("UPDATE table SET weight = :weight WHERE height = 28");
$updo->bindParam(':weight', $weight, PDO::PARAM_INT);
$updo->execute();
关于php - 执行 PDO 语句的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29822416/