請有人可以幫助我指導我正確的方向,讓這個代碼工作。我已經從PHP5.4遷移到PHP5.5,我想知道這是否會成爲困難的原因?如何在MySQLi中調試「查詢未執行」錯誤?
function auth($username, $password) {
// hash password using md5 encryption
$hash_pass = md5($password);
// prepare SQL query
$username = mysqli_real_escape_string($username);
$query = "SELECT * FROM `area51_users` WHERE `user_name`='".$username."'";
if ($result = mysqli_query($Connection, $query) or die (mysqli_error()." (query not executed)")) {
if (mysqli_num_rows ($Connection, $result) > 0) {
// record exits
if ($row = mysqli_fetch_assoc($result) or die (mysqli_error())) {
if ($hash_pass == $row['user_password']) {
// password is valid
// setup sesson
session_start();
$_SESSION['username'] = $username;
$_SESSION['CMS_AUTH'] = "YES";
return true;
}
else {
return false;
}
}
else {
return false;
}
}
else {
return false;
}
}
}
目前我從第一個if語句中收到錯誤「query not executed」。
我是新來的PHP,並試圖全力以赴。
首先查詢,請清楚,如果此查詢在過去(更新問題機構)的工作。當創建Connection時,請確保有錯誤捕獲器,http://php.net/manual/en/function.mysqli-connect.php,並且打開phpmyadmin甚至只是sql命令行並直接運行該查詢帶硬編碼用戶名的課程),以確保在簡單的語法錯誤中沒有錯字。這應該排除大部分奧卡姆剃刀 –
我有點困惑,這將如何解決發生的錯誤。有沒有可能詳細說明? –
有時候這個問題可能與你認爲的行不相關,並且在任何情況下都是很好的形式,以確保在出現問題時總是會錯誤捕獲連接和其他常見代碼以排除它。如果查詢過去的工作是關鍵信息。如果你可以連接成功,如果查詢本身沒有錯,並且查詢是按原樣工作的(這些php變量是),那麼這就排除了很多可能的問題。另一個完整性檢查是將垃圾文本添加到錯誤消息中,以確保這是正確的行,以防複製文件帶有複製粘貼代碼。 –