将错误写入LOG文件 - PHP mySql

时间:2016-01-15 05:27:03

标签: php mysql mysqli

我正在使用mysqli来处理数据库操作,并希望将每个错误记录到文件sql-error.log

我正在使用的代码如下:

$result = mysqli_query($this->_con,"CALL PROCEDURE_NAME(2)");
if(false===$result){
  $error = 'Error calling stored procedure insert_product. Error No: ' . 
            mysqli_errno($this->_con) . ': ' . mysqli_error($this->_con);
  error_log($error . "Date::" . date("l jS \of F, Y, h:i:s A") ."\n", 3, "/sql-errors.log");
  exit();
}

在cPanel上,我的Functions.php文件夹结构如下:

/public_html/site_name/sql/functions/

但是当我执行查询时,我得到了一个下面的错误

  

[15-Jan-2016 04:21:06 Etc / GMT] PHP警告:error_log(/sql-errors.log):无法打开流:/ public_html / site_name / sql / functions / Functions中的权限被拒绝。 php在线***

如何授予写入此文件的权限,error_log会自动创建文件吗?

1 个答案:

答案 0 :(得分:2)

我认为PHP正试图在root文件夹上写,但它没有权限访问。因此,我宁愿使用__DIR__常量来访问日志文件所在的文件夹。

假设您有一个日志文件夹/public_html/site_name/log/。由于您的脚本位于/public_html/site_name/sql/functions/,我编程的是:

error_log( $error . "Date::" . date( "l jS \of F, Y, h:i:s A" ) . "\n", 3, _DIR_ . "/../../log/sql-errors.log" );

希望它有所帮助!