我正在尝试正确地将变量打印到错误日志中,以便我知道我的MySQL查询是否有效,但它不会在我的errorlog.log文件中打印任何内容.我在下面设置了所有内容,我将错误设置为true并告诉它要打印到的文件,但它根本不打印任何内容:
<?php
error_reporting(E_ALL); //to set the level of errors to log, E_ALL sets all warning, info , error
ini_set("log_errors", true);
ini_set("error_log", "/errorlog.log"); //send error log to log file specified here.
include ("connection.php");
$city = $_POST['city'];
$state = $_POST['state'];
$results = array();
if( $query = $db->query("SELECT business_id, BusinessName, date, post".
"FROM WolfeboroC.posts".
"JOIN WolfeboroC.users ON users.recid = posts.business_id".
"WHERE city= '$city' && state='$state' ".
"ORDER BY date DESC LIMIT 0, 500") )
{
while($record = $query->fetch_assoc())
{
Run Code Online (Sandbox Code Playgroud)
我$results在这里定义了一个MySQL查询,它从数据库中获取大量信息并在$ results中返回:
$results[] = $record;
}
$query->close();
}
echo json_encode($results);
Run Code Online (Sandbox Code Playgroud)
这是我尝试将变量打印到错误日志文件的位置:
error_log(print_r($results));
?>
Run Code Online (Sandbox Code Playgroud)
Ofi*_*uch 32
print_r(php手册)将打印数组,不会返回值,所以基本上你使用它错了.
正确的方法是使用函数的第二个参数,它是布尔值,用于确定函数是打印输出还是返回输出.
error_log(print_r($results,true));
Run Code Online (Sandbox Code Playgroud)
编辑 如果您的服务器有DirectAdmin或CPanel,则有一个内置选项可以查看Apache错误日志.检查是否出现自定义错误.如果是这样,则errorlogs文件存在问题.