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 に答える