user2354835
user2354835

Reputation: 259

How to properly print variable to PHP error log

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

Answers (1)

Ofir Baruch
Ofir Baruch

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

Related Questions