我正在使用 LOAD DATA LOCAL INFILE
将文件上传到 MySQL 表。
由于此文件是由用户创建的,因此它可能包含大量不一致的数据和错误的格式。
目前我正在使用以下代码捕获这些警告:
if (mysqli_warning_count($conn)) {
$e = mysqli_get_warnings($conn);
do {
$conn->query("CALL import_warning($id, '$e->errno', '$e->message');";
} while ($e->next());
}
有没有办法在 MySQL 中执行此操作,例如警告时的触发器?
最佳答案
是的,也不是。
mysqli_get_warnings()
函数产生与 show warnings 相同的输出MySQL 语句。因此,有一种方法可以从纯 sql 代码中获取警告列表。但是,MySQL 处理 show
语句的方式与简单的 select
不同。
不幸的是,这意味着您无法在存储过程中正确处理任何 show
语句的结果集,因此您无法在导入后正确记录警告。
关于MySQL 触发警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44776710/