我碰到PHP7一個新的Ubuntu服務器上的下列錯誤警告:庫MySQLi與PHP7
Notice: Trying to get property of non-object in ~/tLogServ.php on line 14
Warning: mysqli::query(): Couldn't fetch mysqli in ~/tLogServ.php on line 17
Fatal error: Uncaught Error: Call to a member function fetch_assoc() on null in ~/tLogServ.php:18 Stack trace:0 {main}thrown in ~/tLogServ.php on line 18
這裏的tLogServ.php
<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
$request = json_decode(file_get_contents('php://input'));
$variable = $request->data;
// echo($variable);
$result = $conn->query("SELECT password FROM login where userID LIKE 'technician'");
$rows = $result->fetch_assoc();
$passHashed = $rows['password'];
if(password_verify($variable, $passHashed)){
$loginMess = "success";
}else{
$loginMess = "fail";
}
echo json_encode($loginMess);
$conn->close();
?>
和我的連接腳本
<?php
DEFINE ('user', '$%^*(');
DEFINE ('pass', '^*&%*');
DEFINE ('host', '1*&^*&^');
DEFINE ('DB', '^*%*(&%^');
$conn = new mysqli(host, user, pass, DB) OR die('Fail Whale ' . mysqli_connect_error());
?>
該通知將隨輸入而消失,但我不確定,以及它引起的警告和致命錯誤。
此代碼在使用PHP5的Ubuntu 14上沒有問題。我已取消註釋 extension = php_mysqli.dll in php.ini。這顯然是一個兼容性問題,但我不確定是否需要重新編寫我的代碼,或者如果這是我無法找到的簡單設置的問題。
查詢是否返回結果?當您使用PHP5或PHP7時,數據庫是否完全相同? –
你在哪裏包括連接文件和什麼代碼preceds這? 「could not fetch」表明在你嘗試這個query()調用之前可能已經關閉了對象'$ conn' –
第一個通知(試圖獲取非對象的屬性)可能是因爲json_decode失敗。 (從相對於線位置判斷到MySQL錯誤) –