没什么多说的,直接贴代码
#include <stdio.h>
#include <mysql.h>
#include <my_global.h>
int main(int argc, char* argv[])
{
MYSQL conn;
mysql_init(&conn); //如果传入的指针为空,会分配一个MYSQL的结构体,并由mysql_close()释放掉
if( NULL == mysql_real_connect(&conn, "localhost", "root", "123456y", "hniois", 0, NULL, 0) )
{
printf("Error %u: %s\n", mysql_errno(&conn), mysql_error(&conn));
exit(1);
}
/* int mysql_query(MYSQL *mysql, const char *stmt_str) */
/* Zero for success. Nonzero if an error occurred. */
/* "update staff set name='Ren Mingyang' where id=2" */
/* "delete from staff where id=3" */
if( mysql_query(&conn, "insert into new_dev(id) values(1)") )
{
printf("Error %u: %s\n", mysql_errno(&conn), mysql_error(&conn));
exit(1);
}
mysql_close(&conn);
return 0;
}
"update staff set name='Ren Mingyang' where id=2"
修改一行或者多行记录,也可能一行记录都修改不了
"delete from staff where id=3" 删除一行或者多行记录,也可能一行记录都删除不了
"insert into new_dev(id) values(1) 只可能插入一行记录,不可能插入多行记录,也可能一行记录都插入不了(id是主键且id=1已经存在)插入出错,使用mysql_error(&conn)输出错误信息
mysql的C API提供了一个函数:
my_ulonglong mysql_affected_rows(MYSQL *mysql)
来获取执行者3种操作时影响的行数,返回值是my_ulonglong类型,经常把它转换成unsigned long显示出来 %lu