这几句php的sql的php输出sql语句的函数哪里错了??

为什么php的pdo不直接使用sql语句查询,而是经过prepare之后执行呢,请技术高人给出真正的实用分析。
该问题被发起重新开启投票
投票剩余时间:
之前被关闭原因:
该问题被发起删除投票
投票剩余时间:
距离悬赏到期还有:
参与关闭投票者:
关闭原因:
该问题已经被锁定
锁定原因:()
保护原因:避免来自新用户不合宜或无意义的致谢、跟帖答案。
该问题已成功删除,仅对您可见,其他人不能够查看。
其实不是全部这样的,你也可以直接query。prepare后其实并没有向数据库提交任何请求,也就是说sql语句还没有执行,只是&准备&好了一个SQL语句,你需要调用execute方法,才真正的执行。而query等于prepare+execute方法。之所以用prepare我理解有2个优点,一是你不用考虑过滤参数内容,prepare自动给你过滤或转义要插入数据库的数据,这可以防止sql注入;二是prepare可以传递参数,举个例子:
$obj = new PDO();$data = $obj-&query("SELECT * FROM `article` WHERE `id` = 1");$data2 = $obj-&prepare("SELECT * FROM `article` WHERE `id` = ?"); //这个问号就代表一个参数,这个参数是可以修改$data2-&bindValue(1 , 10); //id=10
还有个效率上的区别prepare+execute(也就是参数化查询)比query sql语句执行效率要高原因是 query首先mysql需要解析sql语句 然后执行mysql命令而参数化相当于直接执行mysql 省去了mysql解析sql的操作注:参数化查询$data2 = $obj-&prepare("SELECT * FROM article WHERE id = ?");在$data2-&execute(array(1));之后要及时注销$data2windows环境下不会出问题否则在linux环境下如果你下一个$obj-&prepare赋给的变量名跟前一次一样然后执行execute的时候会报错
不是您所需,查看更多相关问题与答案
德问是一个专业的编程问答社区,请
后再提交答案
没有相关问题
关注该问题的人
共被浏览 (4624) 次使用phpstorm写SQL查询语句警告提示
$query = "SELECT * FROM books";这样写会警告提示no data sources configred...以及提示无法解析books。如果去掉星号左侧的空格就没有提示 了。两种浏览器都不会报错,结果一致。可是如果指定了select的字段,就不能去掉空格了。请问是我的写法不对还是phpstorm有特殊的语法要求?
写下你的评论...
写下你的评论...
你应该print_r($row),,
写下你的评论...
Copyright (C)
All Rights Reserved | 京ICP备 号-2php执行sql语句,执行成功,但结果没有改变,也没有报错.
[问题点数:20分,结帖人gaohanxiong]
php执行sql语句,执行成功,但结果没有改变,也没有报错.
[问题点数:20分,结帖人gaohanxiong]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2014年10月 PHP大版内专家分月排行榜第三2014年8月 PHP大版内专家分月排行榜第三2014年3月 PHP大版内专家分月排行榜第三2014年1月 PHP大版内专家分月排行榜第三2012年8月 PHP大版内专家分月排行榜第三2012年2月 PHP大版内专家分月排行榜第三2012年1月 PHP大版内专家分月排行榜第三2011年12月 PHP大版内专家分月排行榜第三2011年11月 PHP大版内专家分月排行榜第三2011年6月 PHP大版内专家分月排行榜第三
2014年10月 PHP大版内专家分月排行榜第三2014年8月 PHP大版内专家分月排行榜第三2014年3月 PHP大版内专家分月排行榜第三2014年1月 PHP大版内专家分月排行榜第三2012年8月 PHP大版内专家分月排行榜第三2012年2月 PHP大版内专家分月排行榜第三2012年1月 PHP大版内专家分月排行榜第三2011年12月 PHP大版内专家分月排行榜第三2011年11月 PHP大版内专家分月排行榜第三2011年6月 PHP大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。PHPcms v9 get标签sql 语句limit无效问题的解决方法_源码_站长之家
PHPcms v9 get标签sql 语句limit无效问题的解决方法
[摘要]PHPCMS V9 把2008的很多功能都去掉了,比如get标签中,在后面自动添加了一个LIMIT 0,20,本文介绍两个PHPcms v9 get标签sql 语句limit无效问题的解决方法。
  最近在用PHPCMS V9做一个站子,发现get标签非常好用,自定义模型后get几乎变成万能的了。但是PHPCMS升级到V9后,把2008的很多功能都去掉了,比如get标签中,在后面自动添加了一个LIMIT 0,20,这样你即使写了num='数字'也没用,写在SQL语句里面,例如{pc:get sql=&SELECT * FROM v9_news ORDER BY id DESC LIMIT 2,5& cache=&3600& page=&$page& dbsource=&discuz& return=&data&}就会报错,打印出来的SQL语句是:SELECT * FROM v9_news ORDER BY id DESC LIMIT 2,5 LIMIT 0,20这样很明显是错误的。在论坛上发现了2个方法,其中第二种方法最绝,直接贴代码:  1.比如{pc:get sql=&SELECT title,url FROM v9_news where catid=9 and status=99 order by updatetime desc& start=&0& num=&4& return=&v&}  可以加入start 和 num 来控制。  2.(比较绝的方法){pc:get sql=&SELECT title,url FROM v9_news where catid=9 and status=99 order by updatetime desc limit 0,4--& return=&v&}  注意4后面的两个减号,把v9自带的LIMIT 0,20语句给注释了! 软件大小:8.10MB 软件类别:国产软件 |
软件语言:简体中文 运行环境:PHP/Mysql 软件授权:免费版 更新时间: 9:30:53 相关链接:
本次DEDECMS教程小编为大家讲解DEDECMS列表页中随机调用缩略图的方法,默认的缩略图是取第一张图片,通过修...
热门源码下载推荐
最受关注报导
编辑推荐排行新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
UID空间积分0 积分11阅读权限10帖子精华可用积分11 信誉积分100 专家积分0 在线时间0 小时注册时间最后登录
白手起家, 积分 11, 距离下一级还需 189 积分
帖子主题精华可用积分11 信誉积分100 专家积分0 在线时间0 小时注册时间最后登录
论坛徽章:0
select id, title,tm from news where id &&&max(id) -7;
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
UID空间积分0 积分328阅读权限20帖子精华可用积分328 信誉积分108 专家积分0 在线时间78 小时注册时间最后登录
稍有积蓄, 积分 328, 距离下一级还需 172 积分
帖子主题精华可用积分328 信誉积分108 专家积分0 在线时间78 小时注册时间最后登录
论坛徽章:0
各位大哥,如帮我看看这sql语句,为什么错??急!!!!
select id,title,tm from news where id&(select max(id) from news)-7
UID72874空间积分0 积分22阅读权限10帖子精华可用积分22 信誉积分100 专家积分0 在线时间0 小时注册时间最后登录
白手起家, 积分 22, 距离下一级还需 178 积分
帖子主题精华可用积分22 信誉积分100 专家积分0 在线时间0 小时注册时间最后登录
论坛徽章:0
各位大哥,如帮我看看这sql语句,为什么错??急!!!!
[quote]原帖由 &jacketble&]select id,title,tm from news where id&(select max(id) from news)-7[/quote 发表:
mysql4不能这么查吧
UID531762空间积分0 积分536阅读权限20帖子精华可用积分536 信誉积分164 专家积分0 在线时间613 小时注册时间最后登录
丰衣足食, 积分 536, 距离下一级还需 464 积分
帖子主题精华可用积分536 信誉积分164 专家积分0 在线时间613 小时注册时间最后登录
论坛徽章:0
各位大哥,如帮我看看这sql语句,为什么错??急!!!!
select id, title,tm from news where id &&&LAST_INSERT_ID - 7;
UID空间积分0 积分328阅读权限20帖子精华可用积分328 信誉积分108 专家积分0 在线时间78 小时注册时间最后登录
稍有积蓄, 积分 328, 距离下一级还需 172 积分
帖子主题精华可用积分328 信誉积分108 专家积分0 在线时间78 小时注册时间最后登录
论坛徽章:0
各位大哥,如帮我看看这sql语句,为什么错??急!!!!
这个语句为什么我在mysql5里面运行不了
select id, title,tm from news where id &&&LAST_INSERT_ID - 7;
UID531762空间积分0 积分536阅读权限20帖子精华可用积分536 信誉积分164 专家积分0 在线时间613 小时注册时间最后登录
丰衣足食, 积分 536, 距离下一级还需 464 积分
帖子主题精华可用积分536 信誉积分164 专家积分0 在线时间613 小时注册时间最后登录
论坛徽章:0
各位大哥,如帮我看看这sql语句,为什么错??急!!!!
错了,造成的不便表示歉意
SELECT id, title,tm FROM news WHERE id & ( LAST_INSERT_ID() - 7);
UID7240485空间积分0 积分157阅读权限10帖子精华可用积分157 信誉积分102 专家积分0 在线时间1 小时注册时间最后登录
白手起家, 积分 157, 距离下一级还需 43 积分
帖子主题精华可用积分157 信誉积分102 专家积分0 在线时间1 小时注册时间最后登录
论坛徽章:0
各位大哥,如帮我看看这sql语句,为什么错??急!!!!
你用是何数据库啊????不同的数据库,对你上面的select语句是不一样的。
我本不奢望你爱我,可你却爱了,我本不渴求有女人走进我,可你走进了我的心扉!我无法控制我炙热的心,因为我感觉到另一颗同样炙热的心在燃烧!我要爱你来证明我的勇气!
UID531762空间积分0 积分536阅读权限20帖子精华可用积分536 信誉积分164 专家积分0 在线时间613 小时注册时间最后登录
丰衣足食, 积分 536, 距离下一级还需 464 积分
帖子主题精华可用积分536 信誉积分164 专家积分0 在线时间613 小时注册时间最后登录
论坛徽章:0
各位大哥,如帮我看看这sql语句,为什么错??急!!!!
没注明就是指mysql}

我要回帖

更多关于 php sql语句 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信