在linux服务器上的非对象上调用成员函数fetch_assoc(),但在windows上则不然


Call to a member function fetch_assoc() on a non-object on linux server but not on windows

当我在linux服务器上运行这个页面时,我会收到上面的错误,但当我在windows机器上运行它时,它不会给我任何错误。以下是我的脚本:

include_once '/../src/init.php';
$userid = $user_data['userid'];
$date = ('Y-m-d'); //get todays date from the server

$db = new mysqli('localhost', 'root', '', 'logfile');
if ($db->connect_error) {

   $error = $db->connect_error;
} else {
$sql = "SELECT a.kiloLogid,a.travelDate,a.openning, a.closing, a.clientsName,a.timeIn,a.timeOut, a.destination,a.diff
                FROM viewDailyDiff a
                WHERE a.`userid` = $userid AND a.`travelDate` = '".$date."'";
$result = $db->query($sql);
if ($db->error) {
    $error = $db->error;
}
}



function getRow($result)
{
 return $result->fetch_assoc();  //the error is on this line
}

请协助

我喜欢包含的文件init.php应该具有对getRow函数的调用。

当Linux到Windows的更改出现问题时,最有可能找到.htaccess的解决方案。尽量不要下载.htaccess

所有最好的

通常发生这种情况时,都是因为没有返回数据。如果"工作/失败"更改转移到新服务器,通常是因为新服务器没有获取数据的权限。因此不会返回任何结果。甚至认为具有相同select语句的原始服务器返回了记录,从而避免了错误。

如果没有返回结果,那么在空数据集上调用fetch_assoc将在最近的php中抛出一个错误。因此,从一台服务器到下一台服务器的php版本也可能是一个因素。

如果返回了记录,请输入仅调用fetch_assoc的代码(这绝不是一个坏主意)和/或尝试在命令提示符下使用mysql客户端手动运行命令(命令行?)以验证权限和数据。ClI通常会对错误结果更加详细。

相关文章: