PDO::PARAM_INT PHP 7.1 和 PHP 7.2 中的行为
PDO::PARAM_INT behaviour in PHP 7.1 & PHP 7.2
当使用 PDO::PARAM_INT 传递字符串时,PHP 7.2 中的行为似乎发生了变化。在版本 7.1 中更新的值和传递的字符串是相同的,在 PHP 7.2 中更新的值是“3”(见下面的例子)。
当然我知道使用 PDO::PARAM_INT 传递字符串是错误的,但我想知道为什么在 PHP 更新日志中找不到任何内容以及为什么没有例外或抛出警告。
有谁知道这是否是我们想要的行为?
$sql = "UPDATE test SET name = :name WHERE id = 1";
$update = $db->prepare($sql);
$update->bindValue(':name', '3hgsf5-458752shUGVZCF', PDO::PARAM_INT);
$update->execute();
当使用 PDO::PARAM_INT 传递字符串时,PHP 7.2 中的行为似乎发生了变化。在版本 7.1 中更新的值和传递的字符串是相同的,在 PHP 7.2 中更新的值是“3”(见下面的例子)。
当然我知道使用 PDO::PARAM_INT 传递字符串是错误的,但我想知道为什么在 PHP 更新日志中找不到任何内容以及为什么没有例外或抛出警告。
有谁知道这是否是我们想要的行为?
$sql = "UPDATE test SET name = :name WHERE id = 1";
$update = $db->prepare($sql);
$update->bindValue(':name', '3hgsf5-458752shUGVZCF', PDO::PARAM_INT);
$update->execute();