我的select PHP函数不能正常工作
我创建一个WebService,我调用一个函数来确认用户,但是每次调用这个函数,我收到“注册确认”消息,即使我发送了错误的代码,这里是我的函数实现,考虑cKy是不变的,不可变的,每个用户都可以改变代码。我认为问题在于mysql指令我的select PHP函数不能正常工作,php,mysql,web-services,Php,Mysql,Web Services,我创建一个WebService,我调用一个函数来确认用户,但是每次调用这个函数,我收到“注册确认”消息,即使我发送了错误的代码,这里是我的函数实现,考虑cKy是不变的,不可变的,每个用户都可以改变代码。我认为问题在于mysql指令 // RPC method 2 (confirm user) function confuser($ckey, $vercode) { $db = mysql_connect("localhost","root"); if(!$db){
// RPC method 2 (confirm user)
function confuser($ckey, $vercode) {
$db = mysql_connect("localhost","root");
if(!$db){
return 'Error: cannot open the connection';
exit;
}
mysql_select_db('user_info');
$query = "select * from personal where vercode='".$vercode."' and ckey='".$ckey."' ";
$result = mysql_query($query, $db);
if($result){
return 'registration confirmed';
}
else{
return 'wrong verification , send it again!';
}
}
mysql\u query()
将在任何成功的查询中返回结果句柄。这包括返回零行的查询。零行结果仍然是有效的结果,只是碰巧没有任何内容。对于零行查询,您不会得到“false”返回
您需要检查找到的行数,例如
$result = mysql_query(...);
if (!$result) {
die(mysql_error()); // in case something did blow up
}
if (mysql_num_rows($result) == 0) {
... wrong verification ...
}
请注意,您需要保护变量$vercode和$ckey。mysql\u real\u escape\u string()曾经是转义方法,但现在mysql\u real\u escape\u string()和您使用的大多数函数在启动PHP5.5.0时都将被弃用。或者,您可以使用您可以使用类似以下内容:
if(mysql_num_rows($result) > 0){
return 'registration confirmed';
}
else{
return 'wrong verification , send it again!';
}
使用
mysql\u num\u rows
查看是否有行,您将使用@vivek sharma的答案$如果成功执行,结果将始终返回true。计算返回的行数是检查给定信息是否存在的最佳方法。
if(mysql_num_rows($result) > 0){
return 'registration confirmed';
}
else{
return 'wrong verification , send it again!';
}