当前位置: 技术问答>linux和unix
C语言读取MySQL的NULL值出错
来源: 互联网 发布时间:2016-04-07
本文导语: 在linux下,用c语言连接MySQL,读取数据时,如果某字段是NULL值,在使用时就会出现内存越界的错误(core dump!). 如执行select name,address from t_users where uid='001'查询语句,如果存在满足条件的记录,但address字段是NULL值.fetch后取ro...
在linux下,用c语言连接MySQL,读取数据时,如果某字段是NULL值,在使用时就会出现内存越界的错误(core dump!).
如执行select name,address from t_users where uid='001'查询语句,如果存在满足条件的记录,但address字段是NULL值.fetch后取row[1]就会出现错误.
请问在不修改SQL语句的情况下,如何修改C的代码来避免这种错误的发生?
如执行select name,address from t_users where uid='001'查询语句,如果存在满足条件的记录,但address字段是NULL值.fetch后取row[1]就会出现错误.
请问在不修改SQL语句的情况下,如何修改C的代码来避免这种错误的发生?
|
抱歉,前边回答错误,没看清楚问题,你可以用下边的语句试试:
( (row[i]==NULL) || (!strlen(row[i])) )?"NULL":row[i]
这样内容为NULL的字段类容会被替换为字符串“NULL”
( (row[i]==NULL) || (!strlen(row[i])) )?"NULL":row[i]
这样内容为NULL的字段类容会被替换为字符串“NULL”
|
fetch前验证row[1]是否非空