有没有办法在执行每个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 应该以某种方式独立运行,并将警告记录到文本文件中。
答案 0 :(得分:5)
不是不改变代码。您应该创建自己的查询函数来执行查询,记录它需要的内容,返回结果并使用它来代替mysqli_query()。