错误集棉

1:scanf(),会在输入缓冲中留一个回车键,vc下fflush()可以清掉,但是gcc却不可以。真是操蛋!!!!!!!!!!!!!
所以在gcc下,scanf和fgets()连在一起会导致fgets()无效。

引用:
为什么一定要处理scanf留下的回车符?标准对这个没有明确的说明,所以由编译器实现定义的行为只能由编译器相关的方式去解决。VC支持使用fflush去清空剩余的缓冲,gcc则无效,变通的方法是scanf之后调用getchar(or fgetc(stdin))或者在调用scanf之前使用setbuf或setvbuf自行更换自定义的缓冲区,进而实现对缓冲中回车符的管理。
2:char *name=”yl”;
char *sql=”select *from tables where usename = name”;
错误,字符串不能嵌套字符串。
改正:snprintf(buff,sizeof(buff),”select *from tables where usename = ‘%s’”,name);
3:int mysql_query(MYSQL *connection ,const char *query);
如果成功返回0.
以为成功返回1。。。。。
官方解释http://dev.mysql.com/doc/refman/5.1/en/mysql-query.html
4:
res_ptr=mysql_store_result(&my_connection);
int num=mysql_num_row(res_ptr);//查询到的行数,用返回0可以判断数据库有无这条语句。
5:每个变量都有存在的意义,别乱定义一些不用的变量。
MYSQL_RES *res_ptr;
mysql_free_result(res_ptr)
如果只是定义,没有使用则会引发段错误。

你可能感兴趣的:(linux)