简单验证表中是否存在记录 这会是最理想的正确方法吗?
(如果我还要返回1或0的整数)
char *qu;
qu = malloc(300);
sprintf(qu, "select 1 from account where un='%s' and pw='%s' limit 1",u,p);
mysql_query(co, qu);
res = mysql_use_result(co);
row = mysql_fetch_row(res);
if(row){
return "exists";
}else{
return "no";
}
我还尝试了行[0] ,这会在找不到记录时导致问题。 (或者甚至在找到时)..
答案 0 :(得分:1)
这样做的规范方法是:
SELECT EXISTS(SELECT * FROM account WHERE un=? and pw=?)
请注意,我使用了绑定变量。您应该始终使用它们来查询SQL注入的查询安全性,而不是使用sprintf
。
参考文献:
答案 1 :(得分:1)
while( row = mysql_fetch_row( res ) ) return atoi( row[ 0 ]);
return 0; // or "no"