执行 PDO 语句的更好方法
A better way to execute PDO statments
我目前正在以这种方式更新我的数据库
$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 手册中,他们写了这样的准备语句
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
这个额外的数组让我很困惑。我是第一次使用 PDO,所以想把事情弄清楚。
您的方法可以工作,但默认将绑定参数转义为字符串。我认为最佳做法是使用 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();
我目前正在以这种方式更新我的数据库
$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 手册中,他们写了这样的准备语句
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
这个额外的数组让我很困惑。我是第一次使用 PDO,所以想把事情弄清楚。
您的方法可以工作,但默认将绑定参数转义为字符串。我认为最佳做法是使用 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();