我有这个运行良好的PHP代码,但事实是,在我的数据库中,cupon是唯一的,并且该代码没有向我显示任何错误。为什么会这样或如何显示呢?
mysqli_query($link, "BEGIN");
$ins_cupon = mysqli_query($link, "LOAD DATA LOCAL INFILE '".$ruta."' INTO TABLE cupones FIELDS TERMINATED BY ',' IGNORE ".$lines." LINES (@col1, @col2) SET encuesta_id = '".$encuesta_id."', nom_producto = '".$nombre_producto."', cupon = @col2") or die(mysqli_error($link));
$upd_cupon = mysqli_query($link, "UPDATE cupones SET cupon = REPLACE(cupon, CHAR(13), '') WHERE encuesta_id = '".$encuesta_id."'") or die(mysqli_error($link));;
if($ins_cupon && $upd_cupon){
mysqli_query($link, "COMMIT");
header('Location: index.php');
exit();
}else{
mysqli_query($link, "ROLLBACK");
$error = "No se pudo completar la operación";
exit();
}
最佳答案
可以这么说,LOCAL
关键字很可能是这里的“罪魁祸首”。根据LOAD DATA
documentation
使用LOAD DATA LOCAL INFILE,数据解释和重复键
错误成为警告,并且操作继续,因为服务器
没有办法在中间停止传输文件
操作。对于重复键错误,这与IGNORE是相同
指定。 IGNORE将在本节稍后部分中进一步解释。
因此,即使您没有显式使用IGNORE
关键字,也是如此。
关于php - MySQL和PHP UNIQUE错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35062776/