我有一個mysql數據庫和一個用戶表。我試圖匹配用戶名和密碼。我的查詢方法返回false,但我從MySQL數據庫檢查它,它應該是真實的。任何人都可以找出錯誤發生的原因嗎?PHP Mysqli查詢返回false
我已經看到了類似的問題在stackoverflow但nothnig似乎工作。 謝謝。
connect.php
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if(isset($_GET['Login'])){
// Create connection
$config = parse_ini_file('config.ini');
$conn = new mysqli($config['host'], $config['username'],
$config['password']);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully\n";
$username = $_GET['username'];
$password = $_GET['password'];
var_dump($username);
var_dump($password);
$sql="SELECT * FROM `User` WHERE `username`='$username' and `password`='$password'";
var_dump($sql);
$result=$conn->query($sql);
var_dump($result);
$count=$result->num_rows;//This is line 37
var_dump($count);
// If result matched $username and $password, table row must be 1 row
if ($count==1) {
echo "Success! $count";
}
else {
echo "Unsuccessful! $count";
}
}
?>
編輯:有可能會涉及到有關安全或壞的編碼代碼的問題,我是完全陌生的PHP索米的第一個目標是完成驗證。
EDIT2:輸出
Connected successfully string(5) "user0" string(5) "pass0" string(68)
"SELECT * FROM `User` WHERE `username`='user0' and `password`='pass0'"
bool(false)
注意:試圖讓非對象的財產 /var/www/html/connect.php上線37 NULL失敗!
是您的密碼存儲爲純文本? –
不,它在mysql數據庫中。我猜測這是二進制格式。 – emre01
可以添加var_dump結果 –