首页
高清壁纸
统计
留言
推荐
Json工具
Search
1
通过iframe嵌套时,被302重定向怎么办?
2,375 阅读
2
关于 MySQL Binlog 权限
1,117 阅读
3
Windows安装PECL
1,025 阅读
4
JS常用监听事件【监听键盘、触控、鼠标、多媒体、打印、剪贴板、表单等事件】
1,017 阅读
5
JS实现Web应用或网站发送浏览器Notification通知
782 阅读
抽奖系统
tony爱编程
收藏分享
经验总结
其它杂类
常用工具
登录
Search
标签搜索
抽奖系统
html+JS
抽奖HTA
js
MySQL
HTA版
源码
hta属性
ecshop
Meta
拖动
javascript
MySQL函数
git提交慢
提交卡
laravel-admin
FSO
redis
文件操作
mysql备份
Tony哥
累计撰写
55
篇文章
累计收到
11
条评论
首页
栏目
抽奖系统
tony爱编程
收藏分享
经验总结
其它杂类
常用工具
页面
高清壁纸
统计
留言
推荐
Json工具
搜索到
1
篇与
的结果
2017-09-07
mysql中是否有类似于eval的写法的,答案在这里
在我们写sql的时候,经常可能会遇到同一个问题:mysql是否具备eval的功能从而使我的变量动态加载到对应的sql语句中:<?php eval('echo "abc";'); ?> <sctipt> var s=eval("{'a':'123456'}"); </script> //---您的mysql也想玩eval?答案是肯定的,没有,但是不要灰心 有个一个很好用的方法来替代:PREPARE statement_name FROM sql_text /*定义*/ EXECUTE statement_name [USING variable [,variable...]] /*执行预处理语句*/ DEALLOCATE PREPARE statement_name /*删除定义*/ 例子:mysql> PREPARE prod FROM "INSERT INTO examlple VALUES(?,?)"; mysql> SET @p='1'; mysql> SET @q='2'; mysql> EXECUTE prod USING @p,@q; mysql> SET @name='3'; mysql> EXECUTE prod USING @p,@name; mysql> DEALLOCATE PREPARE prod; 使用 PREPARE 的几个注意点: A:PREPARE stmt_name FROM preparable_stmt;预定义一个语句,并将它赋给 stmt_name ,tmt_name 是不区分大小写的。 B: 即使 preparable_stmt 语句中的 ? 所代表的是一个字符串,你也不需要将 ? 用引号包含起来。 C: 如果新的 PREPARE 语句使用了一个已存在的 stmt_name ,那么原有的将被立即释放! 即使这个新的 PREPARE 语句因为错误而不能被正确执行。 D: PREPARE stmt_name 的作用域是当前客户端连接会话可见。 E: 要释放一个预定义语句的资源,可以使用 DEALLOCATE PREPARE 句法。 F: EXECUTE stmt_name 句法中,如果 stmt_name 不存在,将会引发一个错误。 G: 如果在终止客户端连接会话时,没有显式地调用 DEALLOCATE PREPARE 句法释放资源,服务器端会自己动释放它。 H: 在预定义语句中,CREATE TABLE, DELETE, DO, INSERT, REPLACE, SELECT, SET, UPDATE, 和大部分的 SHOW 句法被支持。 I: PREPARE 语句不可以用于存储过程,自定义函数!但从 MySQL 5.0.13 开始,它可以被用于存储过程,仍不支持在函数中使用!当然一个悲剧的坏消息最后告诉你:这个东西好用但是不要妄想给他封装到哪个函数里面这个虽然能解决问题不要想用到触发器里面,甚至造到存储过程中用触发器引用也是不被允许的看完上面两点请冷静一下洗洗睡吧 建议: 你可以 把他封装到存储过程中用动态语言调用 这个是可以玩得转的哦!
2017年09月07日
260 阅读
0 评论
0 点赞