1

PHPが作成したエラーログをMySQLテーブルに保存したいのですが、何も挿入されていません。

エラーログに使用しているコードは..

function myHandler($code, $msg, $file, $line) 
   {
      echo "An error occurred while processing your request. Please visit our site and try again.";  
      // log error to file, with context
      $logData = date("d-M-Y h:i:s", mktime()) . ", $code, $msg, $line, $file\n";
      die("Error");
   }

線で

$insert = "INSERT INTO error_logs (error_message)"."VALUES ('$logData')";   
mysql_query($insert)or die(); 

250文字の上限でVARCHARに設定されているerror_logsテーブルのerror_message列にログを挿入します

私はそれがそこに何かを設定するだけだと思っていましたが、どうやら私はマークから外れています。

4

1 に答える 1

2

ステートメントを挿入すると、次のように解析できます。

INSERT INTO error_logs(error_message)VALUES('foo')

これは無効です。

必ずそこにそのスペースを入れてください。

die(..)次回エラーをよりよく確認できるように、MySQLエラーステートメントをに入れておくとよいでしょう。

また、ステートメントに入力する前にデータをエスケープしてください。現在の方法では、BobbyTablesの大きな問題が発生する可能性あります

mysql_*新しいコードで関数を使用しないでください。それらはもはや維持されておらず、非推奨プロセスが開始されています。赤いボックスがか?代わりにプリペアドステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事はどちらを決定するのに役立ちます。PDOを選択した場合は、ここに優れたチュートリアルがあります。

于 2012-12-05T20:38:01.300 に答える