PHP - PDO SQLite3 准备好的语句

发布于 2024-07-25 12:10:01 字数 449 浏览 1 评论 0原文

我正在尝试在 PHP 脚本中使用准备好的语句,该脚本使用 PDO 访问 SQLite3 数据库。

此查询的正常版本按预期工作:

$q1 = "SELECT COUNT(*) FROM fruits WHERE name='apple'";
echo $db->query($q1)->fetchColumn();

但是,我的准备好的语句版本没有输出任何内容。

$q2 = "SELECT COUNT(*) FROM fruits WHERE name='?'";
$s = $db->prepare($q2);
$s->execute("apple");
echo $s->fetchColumn();

我究竟做错了什么? 我尝试使用 PHP 5.2 和 PHP 5.3,得到相同的结果。

I'm trying to use prepared statements in a PHP script that accesses an SQLite3 database using PDO.

The normal version of this query works as expected:

$q1 = "SELECT COUNT(*) FROM fruits WHERE name='apple'";
echo $db->query($q1)->fetchColumn();

However, my prepared statement version outputs nothing.

$q2 = "SELECT COUNT(*) FROM fruits WHERE name='?'";
$s = $db->prepare($q2);
$s->execute("apple");
echo $s->fetchColumn();

What am I doing wrong?
I tried with both PHP 5.2 and PHP 5.3, with the same results.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

意犹 2024-08-01 12:10:01

我认为您不需要在 ? 之前和之后添加额外的撇号。 你应该使用一个数组: $s->execute(array("apple"));

I think you don't need additional apostrophes before and after the ? and you should use an array: $s->execute(array("apple"));

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文