2014-01-27 64 views
0

我已經嘗試了一切,找出爲什麼mysqli_query失敗。任何人都可以闡明我做錯了什麼。將有可能我不再連接到dababase?!!先謝謝你!爲什麼mysqli_query失敗 - 返回資源時,它應該返回資源

function email_exists($email){ 
     $email = sanitize($email); 
    $db = new mysqli('localhost','root','','secured_login'); 
    if($db->connect_errno){ 
     $connect_error = 'Sorry, we are experiencing connection problems.'; 
     die ($connect_error); 
    } 
    return (mysql_result(mysqli_query($db, "SELECT COUNT(`user_id`) FROM `users` WHERE `email` = '$email'"), 0) == 1) ? true : false; 
} 

錯誤

Warning: mysql_result() expects parameter 1 to be resource, object given in.... 

替代解決方案使用mysqli_fetch_row(); < -----以下替代有效嗎?

function email_exists($email){ 
    $email = sanitize($email); 
    $db = new mysqli('localhost','root','','secured_login'); 
     if($db->connect_errno){ 
      $connect_error = 'Sorry, we are experiencing connection problems.'; 
      die ($connect_error); 
     } 
    $query = "SELECT COUNT(`user_id`) FROM `users` WHERE `email` = '$email'"; 
    if ($result = mysqli_query($db, $query)){ 
     while ($result= mysqli_fetch_row($result)){ 
      return ($result); 
     }   
    } 
} 

任何反饋意見是讚賞!

回答

2

在它最簡單的形式,你應該尋找類似如下的東西,

function email_exists($email){ 
    $email = sanitize($email); 
    $db = new mysqli('localhost','root','','secured_login'); 
    if($db->connect_errno){ 
     $connect_error = 'Sorry, we are experiencing connection problems.'; 
     die ($connect_error); 
    } 
    $query = $db->query("SELECT `user_id` FROM `users` WHERE `email` = '$email'"); 
    return ($query->num_rows > 1) ? true : false; 
} 

記住要淨化你的投入,甚至最好使用prepared statements

+0

不錯,但你應該解釋爲什麼而不是盲目提供解決方案。另外,解釋'mysqli_fetch_ *'可能是個好主意。 –

+0

有一些可以學習有關php的知識。謝謝您的意見! – user3001162

0

你在混合mysqlmysqli,爲什麼?

我相信這是一個錯字 - 但改變mysql_resultmysqli_result

+0

因爲我試圖改變,但我得到以下錯誤消息------致命錯誤:調用未定義的函數mysqli_result() – user3001162

+0

我改變了所有我的mysql_result()mysqli_result()與致命錯誤:.. ... – user3001162

+0

我應該使用mysqli_fetch_assoc嗎?任何反饋? – user3001162