1

在执行每个 mysqli_query 函数后,有什么方法可以调用代码片段吗?MySQL中有插入触发器之前和之后。我在 PHP 中寻找类似的东西。

在以下示例中,我需要在每次查询后自动记录所有警告(即不更改当前代码)

<?php
  $con = mysqli_connect('localhost', '', '', '');
  if (mysqli_connect_errno()) {
    print 'Failed to connect to MySQL: ' . mysqli_connect_error() . "\n";
    exit(1);
  }

  if (!mysqli_query($con, 'INSERT INTO dp4 (customer_id, first_name, last_name) ' .
                          'VALUES (NULL,"Chris","abc") ')) {
    print 'Failed to insert data: ' . mysqli_error($con) . "\n";
  }
  if (($warnings = mysqli_warning_count($con)) > 0) {
    if ($rs = mysqli_query($con, "SHOW WARNINGS")) {
        $row = mysqli_fetch_row($rs);
        printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
        mysqli_free_result($rs);
    }
  }
  mysqli_close($con);
?>

换句话说,if (($warnings之后的代码应该以某种方式自行运行,并最好将警告记录到文本文件中。

4

1 回答 1

5

并非不更改代码。您应该创建自己的查询函数来执行查询、记录所需内容、返回结果并使用它而不是 mysqli_query()。

于 2013-11-02T11:38:20.443 回答