昨晚使用MySQL 的C API预处理功能,对多次同样的select操作进行优化时,返回结果时就是得不到返回结果,MySQL 文档里的例子只是没有输入参数的例子,跟我这里不一样,网上查了许久没有找到解决方法。现在解决了。做下笔记。
一、首先是要预处理的语句
MySQL 5.1 文档第27.2.7.11节中使用的预处理语句是是没有绑定数据以传递给mysql_stmt_prepare(),相对没有那么复杂。
SELECT col1, col2, col3, col4 FROM test_table
而我要的是绑定数据到MYSQL_STMT句柄中,每次执行预处理之前改变绑定数据的值,得到新的结果。
我使用的预处理语句如下:
SELECT id, Name FROM group WHERE uid = ? AND gid = ?
需要绑定了两个数据到预处理语句中,返回两个结果。
二、函数调用的步骤
1、 对于没有绑定数据的预处理语句,函数调用顺序是
语句:
SELECT col1, col2, col3, col4 FROM test_table
1. stat = mysql_stmt_init(); /* 初始化预处理句柄*/
2. mysql_stmt_prepare()