问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql的PDO中 exec()函数和 execute()函数有什么区别呢?

发布网友 发布时间:2022-04-09 13:10

我来回答

2个回答

懂视网 时间:2022-04-09 17:32

在项目中需要将内部DECLARE的参数通过EXEC赋值后再作为下面一个EXEC参数的时候,发现都使用EXEC时,问题就不是那么简单了。
趁着没有睡意研究下。
EXEC的使用与缺点
EXEC命令有两种用法,一种是执行一个存储过程,另一种是执行一个动态的批处理

一般的使用如下,做动态SQL语句拼接,然后执行

 技术分享

然而上面这样的拼接语句又称为“串联变量”,而串联变量是不支持执行计划的,在我的演示代码中我已加了测试的SQL语句。
使用DBCC FREEPROCCACHE清空缓存。(具体使用可以查看MS的MSDN:http://msdn.microsoft.com/zh-cn/library/ms174283.aspx)

在输出的数据中我们很清楚的看到系统执行了两次,没有很好地使用执行计划

 技术分享

而最重要的是当我有下面这样的需求

 技术分享

出错啦!

 技术分享

 然而我们发现这样的需求变相也是可以满足的,就是有点麻烦了,解决方案如下,使用临时表

 技术分享

 sp_executesql的使用

使用sp_executesql的话,一切将变的很简单
sp_executesql命令比EXEC命令更灵活,因为它提供一个接口,该接口及支持输入参数也支持输出参数。这功能使你可以创建带参数的查询字符串,这样就可以比EXEC更好的重用执行计划,sp_executesql的构成与存储过程非常相似,不同之处在于你是动态构建代码。它的构成包括:代码快,参数声明部分,参数赋值部分。
sp_executesql的语法
EXEC sp_executesql
@stmt = <statement>,--类似存储过程主体
@params = <params>, --类似存储过程参数部分
<params assignment> --类似存储过程调用
@stmt参数是输入的动态批处理,它可以引入输入参数或输出参数,和存储过程的主体语句一样,只不过它是动态的,而存储过程是静态的,不过你也可以在存储过程中使用sp_executesql;
@params参数与定义输入/输出参数的存储过程头类似,实际上和存储过程头的语法完全一样;
@<params assignment> 与调用存储过程的EXEC部分类似。
现在我们按照sp_executesql的语法改造下上面的查询

 技术分享

 查看执行计划的调用,很好的利用了已有的执行计划提升查询效率

技术分享

 我们再去看上面那个需要使用临时表的问题

代码如下,可以将@TitleOutPut取出后再作为查询的参数给@TitleInPut赋值。

难题得解!

技术分享 

EXEC与sp_executesql的区别及应用

标签:技术分享   http   调用   img   代码   sql命令   字符   ros   exec   

热心网友 时间:2022-04-09 14:40

exec执行一条SQL语句,并返回受影响的行数。此函数不会返回结果集合。
execute函数是用于执行已经预处理过的语句,只是返回执行结果成功或失败。也就是说execute需要配合prepare函数使用,这个的确是麻烦了一点,每次都要先prepare,然后才能exec
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
请问昆山正仪到江苏省昆山市出口加工区新竹路99号 怎么坐班车最近? 跪求苏州神达电脑地址!!! 华为运动耳机挂脖式怎么配对 雅酷美挂脖式无线蓝牙防水耳机-运动时尚,自由畅听 已知函数f(x)=cos^2x-sin^2x+2根号3sinxcosx+1 原先微信有联系后来突然对方要求我对他进行朋友验证我没有他电话号码... 已知函数f(x)=cos^2x-sin^2x+2根号3sinxcosx 已知函数fx=cos^2*x-sin^2*x+2sinx*cosx,求fx的最小正周期,并求当... 已知函数f(x)=cos2x-sin2x 4sinx·cosx求f(x)的最小正周期,并求当x为... 已知f(x)=cos^2x-sin^x+2sinxcosx。①求函数最小正周期②当x∈【0... 20.穷人的资料 《穷人》的预习作业 付辛博和井柏然演的一个电影 谁有关于 穷人 的预习资料? 大概是0几年有一部中国古装宫廷剧 讲的是关于做菜 有人有印象它叫什么名字么 穷人 课文预习 口腹之欲是啥意思 要20课穷人的预习资料 什么是口腹之欲,有什么典故吗? 口腹之欲里面的老马和哑女是什么关系? 马东锡的电影《陷阱》中饰演哑女的演员名字? 凯迪拉克ats过了磨合期油耗是否降低 凯迪拉克新车首保是什么时候 普通的立白或汰渍等洗衣粉含漂白剂吗? 洗衣粉里有漂白粉溶液吗 凯迪拉克 磨合期急加速对车有影响么? 漂白粉洗衣服有用吗? 洗衣粉洗衣物没有漂洗干净对人体有害吗 用漂白水洗衣服和洗衣粉有什么不同? 用 有氧洗衣粉 洗 衣服,会不会把衣服的颜色也给漂白了?? 六年级上册语文第二课&lt;&lt;穷人&gt;&gt;资料 谁发明的作业? 预习&lt;&lt;穷人&gt;&gt;急啊!!!要150左右...速度~~~~~~~ BOBO组合都演过哪些电视剧 (穷人)—列夫`托尔斯泰一文,预习1 口腹之欲何穷之有意思 口腹之欲下一句 有关课文&lt;穷人&gt;的资料 口腹之欲是什么 穷人的预习资料要有词语解释和句子体会急用啊!1 你觉得口腹之欲真的很重要吗? 按图片的预习要求预习《穷人》文章。小练笔也要 怎么控制口腹之欲 学佛的人进来,关于口腹之欲 如何控制自己的口腹之欲 人有,各种各样的*,口腹之欲,淫欲,妄念权力欲以及舒适圈这都是害人的东西,为什么人改变不了? 是谁发明的学校、作业、考试? 家庭作业是谁发明出来的? 为什么,是谁发明了作业??? 关于《穷人》(小学六年级下)的资料