简单地验证表中是否存在记录。
这是最理想的正确方法吗?
(如果我还返回一个整数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],当找不到记录时,这将导致问题。(或者甚至在被发现的时候)。。

最佳答案

典型的做法是:

SELECT EXISTS(SELECT * FROM account WHERE un=? and pw=?)

注意,我使用了绑定变量。您应该始终使用它们来参数化查询,以确保SQL注入的安全性,而不是使用sprintf
推荐信
13.2.10.6 Subqueries with EXISTS or NOT EXISTS
27.8.9 C API Prepared Statement Data Structures

10-06 10:10