PHP7.1中的参数INT行为;PHP7.2

PHP7.1中的参数INT行为;PHP7.2,php,pdo,php-7.2,Php,Pdo,Php 7.2,当使用PDO::PARAM_INT传递字符串时,PHP7.2中的行为似乎发生了变化。在版本7.1中,更新的值和传递的字符串是相同的,在PHP7.2中,更新的值是“3”(参见下面的示例) 当然,我知道使用PDO::PARAM_INT传递字符串是错误的,但我想知道为什么在PHP变更日志中找不到任何内容,为什么没有引发异常或警告 有人知道这是不是一种理想的行为吗 $sql = "UPDATE test SET name = :name WHERE id = 1"; $update = $db->

当使用PDO::PARAM_INT传递字符串时,PHP7.2中的行为似乎发生了变化。在版本7.1中,更新的值和传递的字符串是相同的,在PHP7.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();

这是固定的副作用


这可能是(mysql)驱动程序的问题,因为在PHP7.1中使用SQLite进行快速测试后,我得到了预期的字符串“3”。感谢您的评论。我会试着检查一下。这将有助于了解您使用的数据库和数据库驱动程序版本。PHP5中的快速测试表明MySQL使用完整字符串,而SQLite使用数字