我正在使用Silex和Doctrine。在我需要bindValue获取LIMIT值之前,它对我来说非常有用。 PDO的默认行为是在数字周围插入引号,这显然是不可行的。因此,解决方案是设置data_type
参数。不幸的是,它会引发错误。
我的代码
$start_num = 3;
$stmt = $app['db']->prepare('SELECT * FROM myTable LIMIT ?,10');
$stmt->bindValue(1, $start_num, PDO::PARAM_INT);
错误
Fatal error: Class 'Silex\Provider\PDO' not found in ...
我发现关于这个问题的大多数答案都说这是PDO未被编译/启用的明显迹象,但是我一直在使用Doctrine(它依赖于PDO?)成功一段时间没有问题。
这是Doctrine的问题吗?我的代码有什么问题吗?
答案 0 :(得分:5)
这是一个命名空间问题,如果此代码位于Silex\Provider
命名空间
尝试
\PDO::PARAM_INT