PHP MySQL 错误日志函数

发布于 2024-10-05 01:47:11 字数 301 浏览 6 评论 0原文

您对使用以下函数记录 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;
}
?>

你觉得有用吗?如何改进?

What are your thoughts of using the following function to log mysql errors?

<?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;
}
?>

Do you find it useful? How can it be improved?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

终难遇 2024-10-12 01:47:11

应该是:

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())");

我添加了一个日期字段并清理了输入。需要有一种方法来区分新错误和旧错误,而日期字段可以做到这一点。

Should be:

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())");

I added a date field and sanitised input. There needs to be a way to differentiate new and old errors and a date field does that.

辞旧 2024-10-12 01:47:11

如果我找到一种引发正确错误的方法,我可以使用它来进行 SQL 注入。

为什么不直接使用 MySQL 的本机错误日志呢?有什么理由将它们塞回数据库吗?

I could use this, if I found a way to induce the right error, to do an SQL injection.

Why not just use MySQL's native error log? Is there some reason to stuff them back into the DB?

忆依然 2024-10-12 01:47:11

看起来您还没有清理输入,如果 $query 包含 '?这会导致另一个 SQL 错误。

It looks like you've not sanitized input, what if $query contains '? It would cause another SQL error.

给我一枪 2024-10-12 01:47:11

当然,前提是您已经打开了数据库连接并且不需要在此处打开它们,只要您在第二个查询中的值周围有单引号,该函数就会按预期工作。相关说明是,mysql_error 日志还不够吗?

Provided, of course, you already have your database connections open and do not need to open them here the function would work as expected as long as you have single quotes around the values in the second query. On a related note, is the mysql_error log not sufficient?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文