大約是不支援中文字元的原因:將mysql的所有屬性都改成英文字元之後,使用mysql好了.
但是! 用mysqli寫 還是會返回空(又測了下,密碼框不輸入或輸入0都會得到登入成功的提示)
都明白了 result的返回結果本來就不對.再用mysqli_fetch_array取出要用的元素就好了.
php部分代碼如下:沒有輸出串連不到資料庫的資訊(應該是串連成功了) 沒有報錯 apache2和mysql的log錯誤記錄檔也沒有資訊.但是:查詢到的result傳回值一直是NULL.(當然輸其他密碼會顯示密碼錯誤重新登入的)
然而我在mysql給它們設定的密碼早已修改為與帳號值相等.為什麼會返回錯誤的資訊呢?是不是查詢寫錯了??
@ $db=new mysqli ('localhost','webdba','123456','educational_administration'); if(mysqli_connect_errno()) { echo"error".mysqli_connect_errno().":無法串連到資料庫"; exit(); } //echo "success"; if($user_type=='teacher') { $query="select 密碼 from teacher where 教師編號=$user_id"; if(!$query){echo'此使用者不存在.點擊重新登入';} $result=$db->query($query); //echo $result.'
'; if($result!=$passwd) { echo '密碼錯誤
'; $db->close(); echo '點擊重新登入 '; } else {echo $user_id.'已成功登入
';} }
回複內容:
大約是不支援中文字元的原因:將mysql的所有屬性都改成英文字元之後,使用mysql好了.
但是! 用mysqli寫 還是會返回空(又測了下,密碼框不輸入或輸入0都會得到登入成功的提示)
都明白了 result的返回結果本來就不對.再用mysqli_fetch_array取出要用的元素就好了.
php部分代碼如下:沒有輸出串連不到資料庫的資訊(應該是串連成功了) 沒有報錯 apache2和mysql的log錯誤記錄檔也沒有資訊.但是:查詢到的result傳回值一直是NULL.(當然輸其他密碼會顯示密碼錯誤重新登入的)
然而我在mysql給它們設定的密碼早已修改為與帳號值相等.為什麼會返回錯誤的資訊呢?是不是查詢寫錯了??
@ $db=new mysqli ('localhost','webdba','123456','educational_administration'); if(mysqli_connect_errno()) { echo"error".mysqli_connect_errno().":無法串連到資料庫"; exit(); } //echo "success"; if($user_type=='teacher') { $query="select 密碼 from teacher where 教師編號=$user_id"; if(!$query){echo'此使用者不存在.點擊重新登入';} $result=$db->query($query); //echo $result.'
'; if($result!=$passwd) { echo '密碼錯誤
'; $db->close(); echo '點擊重新登入 '; } else {echo $user_id.'已成功登入
';} }
首先:
if(!$query){echo'此使用者不存在.點擊重新登入';}
這個永遠為false, 後面的永遠不會輸出
其次:
$result=$db->query($query);
返回的應該是個數組,應該是$result0這種結構
不知道你的查詢內的中文是故意這樣寫的還是本身就是這樣,你可以把query語句列印出來,然後在mysql裡面查詢一次就知道了