mysql的CR_COMMANDS_OUT_OF_SYNC错误
mysql执行sql语句时有时会出现CR_COMMANDS_OUT_OF_SYNC错误(2014)
提示语为
commands out of sync; you can't run this command now
网上对此错误的描述很少,而且没有给出解决方法。
其实这是因为上一个sql执行返回了多个结果集,但没有把结果都取出来,就执行了新的sql语句,就会产生这个错误。
应在sql语句执行后
用mysql_store_result(&ninghao79);取出结果集,
然后用mysql_next_result(&ninghao79);检查是否有剩余结果集,
如果有就再用mysql_store_result(&ninghao79);把剩余结果集取出来。
这样就能解决CR_COMMANDS_OUT_OF_SYNC错误了。
转自:http://blog.sina.com.cn/s/blog_4e45516601000b9x.html
相关文档:
如果一个MyISAM表包含任何可变长度列(VARCHAR, BLOB或TEXTDynamic),或者如果一个表被用ROW_FORMAT=DYNAMIC选项来创建,动态存储格式被使用。
这个格式更为复杂一点,因为每行有一个表明行有多长的头。当一个记录因为更新的结果被变得更长,该记录也可以在超过一个位置处结束。
你可以使用OPTIMIZE TAB ......
对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型。
这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内:
mysql> SELECT something from table
WHERE TO_DAYS(NOW())&nbs ......
稳故而知新,最近又用到了,草草拿来温习一下:转自 http://www.bccn.net/Article/sjk/mysql/jc/200601/3411.html
MySQL管理员应该知道如何设置MySQL用户账号,指出哪个用户可以连接服务器,从哪里连接,连接后能做什么。MySQL
3.22.11开始引入两条语句使得这项工作更容易做:GRANT语句创建MySQL用户并指定其权限,而REV ......
LAST_INSERT_ID
自动返回最后一个 INSERT 或 UPDATE 操作为 AUTO_INCREMENT 列设置的第一个发生的值. 参考这里
The ID that was generated is maintained in the server on a per-connection basis.
LAST_INSERT_ID是基于单个connection的, 不可能被其它的客户端连接改变。
可以用 SELECT LAST_INSERT_ID(); 查询LAST ......
大小写敏感性
1、数据库和表名
在MySQL中,数据库和表对应于在那些目录下的目录和文件,因而,内在的操作系统的敏感性决定数据库和表命名的大小写敏感性。这意味着数据库和表名在Unix上是区分大小写的,而在Win32上忽略大小写。
注意:在Win32上,尽管数据库和表名是忽略大小写的,你不应该在同一个查询中使用 ......