我正在學習如何使用mysql,並遇到使用php進行基本登錄的問題。我使用的是mysqli的對象如我connection.php使用php和mysql進行簡單登錄
$user = "root";
$pass = "root";
$db = "mktraining";
$conn = new mysqli("localhost",$user,$pass,$db);
隨着我當前的代碼,我可以順利通過的形式通過用戶名和密碼,並將它們添加到數據庫中,如果他們不是已經存在。但是,當我輸入已經在數據庫中的用戶名和密碼時,我沒有得到正確的結果。我的登錄檢查如下。
include "connection.php";
//get info from form and set variables
$username = $_POST['username'];
$password = $_POST['password'];
//database check for login
$query = "SELECT * FROM project6 WHERE username = '$username' AND password = '$password'";
$result = $conn->query($query);
var_dump($result);
//get the number of rows that corespond to entered usersame and password
$count = $result->num_rows;
//implement the apropriate action if there is a match or not
if($count == 1){
login_user();
} else {
new_user();
}
我的$count
變量沒有返回值。當我回應$count
時,我所得到的是NULL
。我加入了vardump,看看我是越來越有一切都是爲了給我的是
object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(4) ["lengths"]=> NULL ["num_rows"]=> int(1) ["type"]=> int(0) }
我試圖尋找這是什麼意思,但一直沒能找到的東西我明白了。如果我在我的代碼中出現錯誤或者其他一些概念誤解,我可以得到一些幫助將會非常有幫助。謝謝!
議決
謝謝大家的幫助。事實證明,我所做的是正確的,這是我的login_user()
函數中的一個問題,它讓事情變得糟糕。我感謝你的幫助。
(http://stackoverflow.com/questions/60174/how- can-i-prevent-sql -injection-in-php) –
我沒有看到'$ rows'變量? – nomistic
@nomistic,不需要它,只需檢查結果編號行。 – Root125