【发布时间】:2023-03-19 00:28:01
【问题描述】:
无法使这些 PDO 准备好的语句正常工作。在 Windows / MAMP 和 SQLite 上使用 PHP 7.0.9。
PHP PDO驱动pdo_sqlite安装版本3.8.10.2
有人知道我在这里做错了什么吗?
这按预期工作:
$st = $pdo->query("SELECT * FROM `e48` WHERE `parallel` >= 4000 AND `parallel` <= 4010");
$results = $st->fetchAll();
这不起作用,结果为零:
$st = $pdo->prepare("SELECT * FROM `e48` WHERE `parallel` >= :x AND `parallel` <= :y");
$st->execute(array(':x' => 4000, ':y' => 4010));
$results = $st->fetchAll();
这也不起作用:
$st = $pdo->prepare("SELECT * FROM `e48` WHERE `parallel` >= 4000 AND `parallel` <= :y");
$st->execute(array(':y' => 4010));
$results = $st->fetchAll();
最终给我的结果与以下相同:
SELECT * FROM `e48` WHERE `parallel` >= 4000
P.S 也在 Linux 虚拟机 Web 服务器中进行了测试,结果相同。
【问题讨论】:
-
使用php.net/manual/en/pdo.errorinfo.php 看看有什么错误
-
还要检查这里的答案,以确保您已正确配置 PDO 以检测错误:stackoverflow.com/questions/4584788/…
-
尝试设置属性
PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION和$pdo->errorInfo(),但它们什么也没显示。 -
@u_mulder 第一个
query()方法确实有效,它下面的其他方法无效。