我遇到了if
条件的问题。 (的mysql_query)
我在我的数据库中验证,如果USER
不存在,则执行else条件。这不是我想要的。我想让它做error_type(...);
- >这个功能是我自己创建的手动功能。
这是:
else{
var_dump($response);
mysql_query("DELETE FROM info_compte WHERE username ='$user'");
echo "<pre>";
echo "L'utilisateur <b>".$user."</b> a été supprimé avec succès!";
echo "</pre>";
}
这是我的完整功能:(对于error_type
我在文件开头处执行要求)
function db_delete($user, $site){
$querycon = "SELECT username FROM info_compte WHERE username = '$user' AND siteWeb = '$site'";
$response = mysql_query($querycon);
if($response > 0)
error_type(6, $user,"");
else {
var_dump($response);
mysql_query("DELETE FROM info_compte WHERE username ='$user'");
echo "<pre>";
echo "L'utilisateur <b>".$user."</b> a été supprimé avec succès!";
echo "</pre>";
}
}//db_delete
感谢所有人的建议
答案 0 :(得分:2)
返回0结果的查询成功,因此$response
不会处于false
状态。
试试这个:
$querycon = "SELECT username FROM info_compte WHERE username = '$user' AND siteWeb = '$site'";
$response = mysql_query($querycon)
if(mysql_num_rows($response) < 1){
...
mysql_num_rows返回查询返回的行数,如果此数字为0,则查询成功但没有结果。
考虑这个例子:
在第一个查询select * from data where id = "notHere";
中,此查询成功,但它返回0行,而第二个查询select * from data LIMIT 1;
成功并返回1行。
答案 1 :(得分:0)
你的问题在于这一行:
if(!($response = mysql_query($querycon))){
正在发生的事情是你将$response
指定为等于mysql_query
,然后否定它。只要作业有效,你总会得到假的。
相反,一次性将作业和与false进行比较:
if($response = mysql_query($querycon) === false){
有了这个,你说'将$response
分配给mysql_query
并将其与false进行比较。
答案 2 :(得分:0)
如何使用php的mysql_affected_rows