字段名使用了php的关键字,该怎么处理呢

忠向 2009-08-14 03:21:55
google搜索过了,处理办法说是加符号`,就是esc下面的那个键,我试过了,程序确实不报错了,但查询结果却没有了,sql语句如下:

$sql = 'SELECT * from BookImage where bookid=2 and `index`=1';
foreach ($conn->query($sql) as $row)
{
echo $row['bookid']."\n";
}

就这么简单个代码而已
我把sql语句独立在sqlite命令行下执行,无问题,显示有不少记录,但是上面代码执行的时候,一条记录都没有,请教我的问题是出在哪里?谢谢
...全文
141 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
s777n 2009-09-03
  • 打赏
  • 举报
回复
是不是单引号也不是双引号 , 是(`) 就是数字1前面那个键。
忠向 2009-08-14
  • 打赏
  • 举报
回复
是我自己的问题,echo $row['bookid']."\n";
其中的字段名大小写有关,结贴
多谢两位热心朋友
dzxccsu 2009-08-14
  • 打赏
  • 举报
回复
如果SQL没错的话,你的程序也没错哦!
忠向 2009-08-14
  • 打赏
  • 举报
回复
$dsn = 'sqlite:c:\\appserv\\db\\mybooks.db';
$conn = new PDO($dsn, $user, $password);
$sql = "SELECT * from BookImage where bookid=2 and `index`=1";
foreach ($conn->query($sql) as $row)
{
echo $row['bookid']."\n";
}

这就是全部代码,省略了异常
dzxccsu 2009-08-14
  • 打赏
  • 举报
回复

$conn->query($sql);//你这个是得到结果集,还是资源?
Abin-2008 2009-08-14
  • 打赏
  • 举报
回复
$conn->query($sql) as $row
检查下这句话有没有问题?
忠向 2009-08-14
  • 打赏
  • 举报
回复
单双引号我都试过了,查询结果还是不对
dzxccsu 2009-08-14
  • 打赏
  • 举报
回复

$sql = 'SELECT * from BookImage where bookid=2 and `index`=1'; 改为:

$sql = "SELECT * from BookImage where bookid=2 and `index`=1";

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧