Reputation: 259
I'm trying to properly print a variable to the error log so that I know if my MySQL query worked, but it doesn't print anything to my errorlog.log
file. I set everything up below, I set errors to true and told it the file to print to but it doesn't print anything at all:
<?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())
{
I defined $results
, here its a MySQL query that fetches a bunch of info from the database and returns it in $results:
$results[] = $record;
}
$query->close();
}
echo json_encode($results);
This is where I try to print the variable to the error log file:
error_log(print_r($results));
?>
Upvotes: 23
Views: 62449
Reputation: 10356
print_r
(php manual) will print the array and won't return a value,
so basically you're using it wrong.
The right way is using the second parameter of the function which is boolean that determines if the function will print the output or will return it.
error_log(print_r($results,true));
EDIT If your server has DirectAdmin or CPanel, there's a built-in option to see the Apache error logs. Check if your custom error appears there. If so, there's a problem with the errorlogs file.
Upvotes: 56