有两个问题,请教各位:
1、mysql_query()和 mysql_real_query()有什么区别?2、
如果我先把链接m_connptr关闭
mysql_close(m_connptr);
然后再执行
mysql_query(m_connptr,ddl.c_str());
为什么是直接引起程序的崩溃,
而不是返回一个错误的信息呢?
1、mysql_query()和 mysql_real_query()有什么区别?2、
如果我先把链接m_connptr关闭
mysql_close(m_connptr);
然后再执行
mysql_query(m_connptr,ddl.c_str());
为什么是直接引起程序的崩溃,
而不是返回一个错误的信息呢?
解决方案 »
- mysql根据字段值取字段别名
- 求救:phpmyadmin中显示表在使用中的情况
- mysql的一个查询需求问题
- Mysql的GBK字段问题,快抓狂了,y=~
- 一个表中有100条记录这样查询表中的第80条到90条记录
- mysql能否同步个别的表,而非整个数据库?
- 我用postgres数据库,创建了一个表,create table networkstat (cur_time time,s1 char(8),s2 char(8),s3 char(8)),
- 【请问】mysql是一家商业公司还是一个开源组织,看了csdn的头条怎么没看明白啊
- 关于数据库的备份
- mysql 删除重复项
- mysql使用c接口查询定位
- 求一个sql语句, 谢谢大家 :)
这个在MYSQL的手册中就有说明如下。
mysql_query() cannot be used for statements that contain binary data; you must use mysql_real_query() instead. (Binary data may contain the “\0” character, which mysql_query() interprets as the end of the statement string.) In addition, mysql_real_query() is faster than mysql_query() because it does not call strlen() on the statement string. 以下由GOOGLE自动翻译
mysql_query()不能用于语句包含二进制数据,你必须使用mysql_real_query()代替。 (二进制数据可能包含“\ 0”的性质,这mysql_query()作为字符串结束的声明解释。)此外,mysql_real_query()比快mysql_query(),因为它不调用strlen()来对语句字符串。
mysql_query会自己找'\0'然后才知道要执行的sql语句是什么,而mysql_real_query就直接告诉它不用找了,第第几位就结束了。前者要调用strlen,后者可能是直接memcpy,所以速度理论上肯定会比mysql_query快一些。还有就是如果你的sql语句中包含有二进制的话,假如二进制中有'\0',我是说假如,假如这么运气不好的话,你用mysql_query会出问题。
处于程序安全考虑也要这样做啊