PHP - PDO SQLite3 准备好的语句
我正在尝试在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为您不需要在 ? 之前和之后添加额外的撇号。 你应该使用一个数组: $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"));