Функция журнала ошибок PHP MySQL - PullRequest
0 голосов
/ 01 декабря 2010

Что вы думаете об использовании следующей функции для регистрации ошибок MySQL?

<?php
function sql_query($query)
{
  $q = mysql_query($query);
  if(!$q)
  {
    mysql_query('INSERT INTO mysql_errors (error_query, error_about) VALUES ('.
    $query.', '.mysql_error().' )');
  }
  return $q;
}
?>

Считаете ли вы это полезным? Как это можно улучшить?

Ответы [ 4 ]

1 голос
/ 20 ноября 2012

Должно быть:

mysql_query("INSERT INTO mysql_errors (error_query, error_about, error_date) VALUES ('".
    mysql_real_escape_string($query)."', '".mysql_real_escape_string(mysql_error())."',NOW())");

Я добавил поле даты и обработал ввод. Должен быть способ различать новые и старые ошибки, и поле даты делает это.

0 голосов
/ 01 декабря 2010

Похоже, вы не санировали ввод, что если $ query содержит '? Это вызвало бы еще одну ошибку SQL.

0 голосов
/ 01 декабря 2010

Если, конечно, у вас уже есть открытые соединения с базой данных, и вам не нужно открывать их здесь, функция будет работать, как и ожидалось, если у вас есть одинарные кавычки вокруг значений во втором запросе.На заметку о том, что журнала mysql_error недостаточно?

0 голосов
/ 01 декабря 2010

Я мог бы использовать это, если бы нашел способ вызвать правильную ошибку, чтобы сделать SQL-инъекцию.

Почему бы просто не использовать собственный журнал ошибок MySQL? Есть ли какая-то причина, чтобы засунуть их обратно в БД?

...