php7中的MySQLi警告


MySQLi warning with php7

我在新的Ubuntu服务器上从php7得到以下错误:


注意:试图获取~/tLogServ.php14
行的非对象属性
警告:mysqli::query():无法在~/tLogServ.php中的17行获取mysqli

致命错误:未捕获错误:调用~/tLogServ.php中null的成员函数fetch_assoc():18堆栈跟踪:

0{main}thrown在~/tLogServ.php18

这是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的Ubuntu14上运行时没有问题。我已取消注释扩展名=php_mysqli.dll这显然是一个兼容性问题,但我不确定是否需要重新编写代码,或者这是一个找不到的简单设置问题。

问题是两个愚蠢的错误。

1) 我在连接中引用的用户没有获得适当的权限。

2) "Host"被定义为本地主机的IP。无论出于何种原因,这在Cat连接上有效,但在WiFI上无效(两者都有静态Ip)。

对于有相同/类似问题的其他人。验证您的php.ini mysqli扩展是否已启用/取消注释。正如A.L所说,问题在于mySQL设置,而不是PHP/Ubuntu。