PHP和MySQL问题(mysql_query)

时间:2011-02-28 21:25:01

标签: php

我遇到了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

感谢所有人的建议

3 个答案:

答案 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,则查询成功但没有结果。

考虑这个例子: sql example

在第一个查询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