我有一个关于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,我在文件的开头执行了require )
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感谢所有人的建议
发布于 2011-03-01 05:28:06
返回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行。
发布于 2011-03-01 05:28:48
您的问题出在下面这一行:
if(!($response = mysql_query($querycon))){
发生的情况是,您将$response赋值为等于mysql_query,然后将其否定。只要赋值起作用,你总是会以false结束。
取而代之的是,一次完成赋值并与false进行比较:
if($response = mysql_query($querycon) === false){
这样,您就是在说‘将$response赋给mysql_query的值,并与false进行比较。
发布于 2011-03-01 05:31:09
使用php的mysql_affected_rows怎么样?
https://stackoverflow.com/questions/5147745
复制相似问题