因此,感谢用户的建议,我已开始将代码移植到PDO。一切都很顺利,直到一个小问题。
我有一个小函数来处理我的数据库调用,它基本上生成SQL查询,执行$ dbh-> prepare($ sql),然后遍历并绑定值,然后执行查询。
$sth = $dbh->prepare ($sql);
// bind parameters
if ($action == 'insert' || $action == 'update') {
reset ($array);
foreach ($array as $key => &$value) {
if ($value != 'NOW()') {
$sth->bindParam (':' . $key, $value);
}
}
}
$sth->execute();
这个工作正常,直到我需要插入值'0'。不返回任何错误,但插入到db中的值最终为表中列类型的最大值,在本例中为“137”。
如果有人能够解释发生的事情并提供解决方案,而不是仅仅给我一个解决方案,我希望能够更好地理解这一点。
干杯, 路加
答案 0 :(得分:1)
您没有正确绑定参数,请查看the manual
你应该使用:
$sth->bindParam (':' . $value, [PARAM TYPE - example: PDO::PARAM_INT]);