19

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())
  {

$resultsここでは、データベースから大量の情報を取得して $results に返す MySQL クエリを定義しました。

    $results[] = $record;
  }
  $query->close();
}


echo json_encode($results);

これは、変数をエラー ログ ファイルに出力しようとする場所です。

error_log(print_r($results));

?>
4

1 に答える 1

47

print_rphp manual)は配列を出力し、値を返さないため、基本的に間違った使い方をしています。

正しい方法は、関数が出力を出力するか返すかを決定するブール値である関数の 2 番目のパラメーターを使用することです。

error_log(print_r($results,true));

編集 サーバーに DirectAdmin または CPanel がある場合、Apache エラー ログを表示する組み込みオプションがあります。カスタム エラーがそこに表示されるかどうかを確認します。その場合は、エラー ログ ファイルに問題があります。

于 2013-10-21T06:19:56.267 に答える