Mysql_real_query报错表示不同步
2013-11-08 23:39
190 查看
Mysql_real_query报错表示不同步
这两天写内核的时候碰到一个问题,主要是原因藏得很隐蔽,让我好一顿找,于是mark一下.
在添加一个模块时调用了mysql_real_query函数,我勒个去一个劲地报错,代码前后检查不下5次,跟以前写的米啥两样啊,于是去google半天,错误原因是mysql_store_result()这个东西没清空,大概如此,但为虾米会没清空呢?我仔细检查过,在每个mysql_store_resule后面我都有用mysql_free_result的啊,调试加google得出的结论是,当调用一个存储过程或者SQL语句的时候,如果返回值是一个空记录集,尽管row数为零,但是mysql_store_result()的返回值并不为NULL!
也就是说继续执行下去了,但是这样子继续执行不知为何就是会出错?原因不得而知,苦搜半天未果T_T.
比如我原先是这么写的.
?[Copy to
clipboard]View Code CPP
改成
?[Copy to
clipboard]View Code CPP
问题解决了 =,=..
而我在存储过程中判断如果为空记录集则返回NULL,也可行.
这两天写内核的时候碰到一个问题,主要是原因藏得很隐蔽,让我好一顿找,于是mark一下.
在添加一个模块时调用了mysql_real_query函数,我勒个去一个劲地报错,代码前后检查不下5次,跟以前写的米啥两样啊,于是去google半天,错误原因是mysql_store_result()这个东西没清空,大概如此,但为虾米会没清空呢?我仔细检查过,在每个mysql_store_resule后面我都有用mysql_free_result的啊,调试加google得出的结论是,当调用一个存储过程或者SQL语句的时候,如果返回值是一个空记录集,尽管row数为零,但是mysql_store_result()的返回值并不为NULL!
也就是说继续执行下去了,但是这样子继续执行不知为何就是会出错?原因不得而知,苦搜半天未果T_T.
比如我原先是这么写的.
?[Copy to
clipboard]View Code CPP
1 2 3 4 5 6 7 8 | if( res = mysql_store_result(&Mysql) ) { while( row = mysql_fetch_row( res ) ) { ..... } mysql_free_result(res); } |
?[Copy to
clipboard]View Code CPP
1 2 3 4 5 6 7 8 | if((res = mysql_store_result(&Mysql)) && mysql_num_rows(res) > 0 ) { while( row = mysql_fetch_row( res ) ) { ..... } mysql_free_result(res); } |
而我在存储过程中判断如果为空记录集则返回NULL,也可行.
相关文章推荐
- 悬而未决:MYSQL配置好主从同步后没有报错,但数据一直没有同步过来是什么原因?
- MySQL5.6主从复制(mysql数据同步配置)
- percona-xtrabackup工具实现mysql5.6.34的主从同步复制
- CentOS下MySQL主从同步配置 Slave_IO_Runing:NO
- sqlserver与mysql数据同步问题
- mysql主从同步配置
- centos下MySQL主从同步配置
- MySql 数据同步
- MYSQL数据同步、复制、分发
- mysql 当天和当月的表示方法
- Mysql 同步故障处理 (参数 slave_pending_jobs_size_max)
- Mysql主主(双向)同步配置方案
- PHP mysql_real_escape_string() 函数
- mysql5.5半同步复制
- MySQL的一主二从异步复制(半同步复制)
- win2003 安装2个mysql实例做主从同步服务配置
- MySQL + KeepAlived + LVS 单点写入主主同步高可用架构
- MySQL 主主同步配置步骤
- MySQL5.7 设置同步复制过滤不用重启mysql服务进程了