赞
踩
mysql 的预编译功能,是为了那些频繁执行的语法不变的 sql 语句而准备的,每次 sql 语句执行都要经过数据库的编译,这个过程比较耗时,一条两条或十几条可能没什么感觉,如果是上千条效率会明显的有变化。mysql 提供的机制是可以让一个结构不变的 sql 语句预先在数据库中编译,我们只需要将可变的参数每次传递给它执行就可以了,这样就省去了编译的步骤,效率提高非常明显。下面就是预编译的一个小例子。
代码实现
#include
#include
#include
#include
#define STRING_SIZE 50
// 删除表语句
#define DROP_SAMPLE_TABLE "DROP TABLE IF EXISTS test_table"
// 创建表语句
#define CREATE_SAMPLE_TABLE "CREATE TABLE test_table(col1 INT,col2 VARCHAR(40),col3 SMALLINT,col4 TIMESTAMP)"
// 给表插入数据的预编译语句
#define INSERT_SAMPLE "INSERT INTO test_table(col1,col2,col3) VALUES(?,?,?)"
int main(int argc, char* argv[])
{
unsigned int err;
// 初始化 mysql 句柄
MYSQL* mysql;
mysql = mysql_init(NULL);
if (mysql == NULL)
{
err = mysql_errno(mysql);
printf("mysql_init error, code = %d\n", err);
return err;
}
// 连接服务器
mysql = mysql_real_connect(mysql, "127.0.0.1", "root", "******", "mydb61", 0, NULL, 0);
if (NULL == mysql)
{
err = mysql_errno(mysql);
printf("mysql_real_connect error, code = %d\n", err);
return err;
}
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。