/** * エラーの内容をトレースする. * * XXX trigger_error で処理する場合、1024文字以内に抑える必要がある。 * XXX 重要な情報を先頭に置き、冗長になりすぎないように留意する。 * @access private * @param \PEAR::Error $error \PEAR::Error インスタンス * @param string $sql エラーの発生した SQL 文 * @param array $arrVal プレースホルダ * @return string トレースしたエラー文字列 */ public function traceError($error, $sql = '', $arrVal = false) { $err = "SQL: [{$sql}]\n"; if ($arrVal !== false) { $err .= 'PlaceHolder: [' . var_export($arrVal, true) . "]\n"; } $err .= $error->getMessage() . "\n"; $err .= rtrim($error->getUserInfo()) . "\n"; // \PEAR::MDB2 内部のスタックトレースを出力する場合、下記のコメントを外す。 // $err .= GcUtils::toStringBacktrace($error->getBackTrace()); return $err; }
/** * エラーの内容をトレースする. * * @access private * @param PEAR::Error $error PEAR::Error インスタンス * @param string $sql エラーの発生した SQL 文 * @param array $arrVal プレースホルダ * @return string トレースしたエラー文字列 */ function traceError($error, $sql = "", $arrVal = false) { $scheme = ''; if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') { $scheme = "http://"; } else { $scheme = "https://"; } $err = $scheme . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . "\n\n" . "SERVER_ADDR: " . $_SERVER['SERVER_ADDR'] . "\n" . "REMOTE_ADDR: " . $_SERVER['REMOTE_ADDR'] . "\n" . "USER_AGENT: " . $_SERVER['HTTP_USER_AGENT'] . "\n\n" . "SQL: " . $sql . "\n\n"; if ($arrVal !== false) { $err .= "PlaceHolder: " . var_export($arrVal, true) . "\n\n"; } $err .= $error->getMessage() . "\n\n"; $err .= $error->getUserInfo() . "\n\n"; $err .= SC_Utils_Ex::sfBacktraceToString($error->getBackTrace()); return $err; }