打印本文 打印本文 关闭窗口 关闭窗口
在MySQL数据库中使用C执行SQL语句 (2)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数975  更新时间:2009/4/22 20:44:52  文章录入:mintao  责任编辑:mintao

现在,我们更改代码,所以 'insert' 部分被替换成:

 mysql_errno(&my_connection),

mysql_error(&my_connection));

} }

res = mysql_query(&my_connection,

"UPDATE children SET AGE = 4

WHERE fname = 'Ann'");

if (!res) { printf("Updated %lu rows\n",

(unsigned long)mysql_affected_rows(&my_connection));

} else { fprintf(stderr, "Update error %d:

%s\n",mysql_errno(&my_connection),

mysql_error(&my_connection));

}



现在假设子表中有的数据,如下:

childno fname age 1

2

3

4

5

6

7

8

9

10

11

Jenny

Andrew

Gavin

Duncan

Emma

Alex

Adrian

Ann

Ann

Ann

Ann

14

10

4

2

0

11

5

3

4

3

4



如果我们执行update1,希望报告的受影响行数为4,但是实际上程序报告2,因为它仅必须更改2行,虽然WHERE子句标识了4行。如果想让 mysql_affected_rows报告的结果为4这可能是熟悉其它数据库的人所期望的),则需要记住将CLIENT_FOUND_ROWS标志传递到mysql_real_connect,在 update2.c中的程序如下:

if (mysql_real_connect(&my_connection, "localhost", 

"rick", "bar", "rick", 0, NULL, CLIENT_FOUND_ROWS)) {

打印本文 打印本文 关闭窗口 关闭窗口