第10章 数据库编程.pptVIP

  1. 1、本文档共231页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

*******************************************************************************************************************************************************10.8预处理SQL语句传统方式的SQL语句,在执行时每条SQL都需要经过分析、编译和优化的步骤。预处理方式则是利用客户端与服务器的二进制协议,预先编译一次客户端发送的SQL语句模板,然后再根据客户端发送给服务器相应数量的变量进行执行操作,并且针对一条SQL语句模板可以执行多次,还无需考虑数据中含有未转义的SQL引号和分隔符字符。10.8预处理SQL语句预处理语句的步骤第1步:准备预处理的SQL模板第2步:执行预处理的语句第3步:在使用完预处理语句后对其进行释放10.8预处理SQL语句准备预处理语句预处理的SQL语句:有一定限制的,原因在于不是所有的SQL都可以被编译。举例1(不符合):查看警告和错误的语句以及与警告和错误相关的系统变量等。举例2(符合):常用增、删、改、查的语句以及大部分的SHOW语句。10.8预处理SQL语句准备预处理语句PREPARE预处理语句名称FROM预处理的SQL语句预处理语句名称:不区分大小写,用于标识预处理的SQL模板,在后面进行执行或释放预处理语句时使用;预处理的SQL语句:是一个字符串或包含SQL语句的会话变量,在此SQL模板中“?”作为需动态改变的数据信息,但不能表示SQL关键字或标识符。10.8预处理SQL语句准备预处理语句#①预处理的SQL语句是字符串mysqlPREPAREstmtFROMSELECTname,priceFROMsh_goodsWHEREid=?;QueryOK,0rowsaffected(0.00sec)Statementprepared#②预处理的SQL语句是变量mysqlSET@sql=SELECTname,priceFROMsh_goodsWHEREid=?;mysqlPREPAREstmtFROM@sql;QueryOK,0rowsaffected(0.00sec)Statementprepared10.8预处理SQL语句当预处理语句的名称已存在时,若再次创建同名的预处理语句,则系统会先释放原来的语句,然后再重新创建。为防止同时创建太多的预处理语句,可以通过max_prepared_stmt_count系统变量限定预处理的最多数量。PREPARE语句可以在存储过程中使用,但是不能在自定义函数或触发器中使用。!10.8预处理SQL语句执行预处理语句在声明预处理语句后,要想其正常的运行,需要使用EXECUTE执行。EXECUTE预处理语句名称[USING@变量名[,@变量名]…]预处理语句中含有占位符“?”,则必须使用USING绑定对应数量的会话变量。10.8预处理SQL语句执行预处理语句mysqlSET@id=3;QueryOK,0rowsaffected(0.00sec)mysqlEXECUTEstmtUSING@id;+++|name???|price|+++|碳素笔|??1.00|+++1rowinset(0.00sec)在执行预处理语句时,首先定义会话变量保存数据。然后在SQL模板中按从左到右的顺序将其绑定到符号“?”占用的位置。最后执行此SQL语句。10.8预处理SQL语句释放预处理语句预处理操作完成后,为了节约其占用的资源,建议使用以下的语句进行释放。{DEALLOCATE|DROP}PREPARE预处理语句名称释放后再次执行预处理语句会导致错误的发生。mysqlDEALLOCATEPREPAREstmt;QueryOK,0rowsaffected(0.00sec)10.8预处理SQL语句释放预处理语句预处理SQL语句属于会话级别的操作,因此它仅适用于创建预处理语句的当前用户会话,不适用于其他会话。同时在会话结束后,即使不

文档评论(0)

三秋叶 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档