MySQL 一次执行多条语句的实现及常见问题
代码如下:
//链接时设定
mysql_real_connect( ..., CLIENT_MULTI_STATEMENTS );
//或者
//中途指定
mysql_set_server_option( mysql, MYSQL_OPTION_MULTI_STATEMENTS_ON ); //mysql是连接的名称
当使用执行多语句功能后,一定要读完整个resault集,否则会出现错误:Commands out of sync; you can't run this command now
官方推荐的执行语句是这样的:
复制代码
代码如下:
do
{
/* Process all results */
...
printf( "total affected rows: %lld", mysql_affected_rows( mysql ) );
...
if( !( result mysql_store_result( mysql ) ) )
{
printf( stderr, "Got fatal error processing query\n" );
exit(1);
}
process_result_set(result); /* client function */
mysql_free_result(result);
}while( !mysql_next_result( mysql ) );
如果仅仅是插入等不需要返回值的SQL语句,也一样得读完整个resault集并释放,最小化的写法:
复制代码
代码如下:
do
{
result = mysql_store_result( mysql );
mysql_free_result(result);
}while( !mysql_next_result( mysql ) );
相关文档:
http://hi.baidu.com/tianxia_1209/blog/item/a2613822fec7e7f6d6cae267.html
MYSQL的事件是5.1新增加的,如果想体验,建议升级版本。
至于语法我就不多说了,手册上讲的很详细,我来说说几个要点以及一些实例。
注意事项:
1、EVENT权限是针对模式的(在MYSQL中也就是库的级别),不能对单独表来赋予权限。
2、必须在 ......
仅仅是看一些书是零零散散记下的,给自己备忘而已。建议去看专业网站的笔记。
1.主键的值必须是唯一的,并且不能为空,这可以提高MySQL从多个表中取得数据或者取得指定键值对应的行的速度。MySQL通过一个特殊的称为Index索引的数据结构做到这一点,Index是找到一条记录的快捷方式,就像图书馆的卡片目录。
2.查看表的列定 ......
转帖请注明出处,并保持文章的完整性。
对MySQL数据库来说,同一时刻,在同一个连接(connection)上,只允许进行一个操作(query,etc.),如果你的程序是多线程的,并且你在多个线程中都会利用同一个connection对数据库进行操作,那么,就有可能发生问题。
例如,你可能会收到“Commands out of sync”的错误 ......
1、php与mysql建立连接
php.ini 加载mysql组件
extension=php_mysql.dll前的;去掉
exetension_dir=""路径是否正确
Php连接mysql函数
mysql_connect:开启MYSQL连接
mysql_select_dir:打开一个数据库
@和or die 隐藏错误和条件显示
mysql_connect("主机","用户名","密码");
mysql_sele ......