我在新的Ubuntu服务器上从php7收到以下错误:
在 18 > 〜/ tLogServ.php 中抛出
注意:尝试在〜<> b 中获取非对象的属性
警告:mysqli :: query():无法在行 17 〜/ tLogServ.php 中获取mysqli
致命错误:未捕获错误:在〜/ tLogServ.php中调用null上的成员函数fetch_assoc():18 堆栈跟踪:0 {main}
这里是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上没有问题。我没有注释 延长= php_mysqli.dll 在php.ini中。这显然是一个兼容性问题,但我不确定是否需要重新编写代码,或者它是否是一个我无法找到的简单设置问题。
答案 0 :(得分:0)
这个问题是两个愚蠢的错误。
1)我在连接中引用的用户没有获得适当的权利。
和
2)'Host'被定义为localhost的IP。无论出于何种原因,这都适用于Cat连接,但不适用于WiFI(两者都有静态Ip)。
对于具有相同/类似问题的其他人。验证您的php.ini mysqli扩展是否已启用/取消注册。正如A.L所涉及的问题是mySQL设置而不是PHP / Ubuntu。