我将mySQL结果插入到表中,该表具有帐号和trasaction日期的唯一索引
foreach ($fulldata as $partdata){
$name=$partdata['name'];
$acno=$partdata['acno'];
$trdate=$partdata['trdate'];
$sql="INSERT into mytable (name,acno,trdate) values ('$name','$acno','$trdate')";
$result=mysqli_query($con,$sql) or die(mysqli_error($con));
}
如果条目重复,则会显示错误'重复输入...'并且循环终止。即使它没有数据库中现有记录的重复值,它也不会占用下一个处理记录。
理想情况下,它应该只对那些具有重复条目的行显示错误,但是插入所有那些唯一新条目的记录。任何其他类型的循环都可以帮助吗?
答案 0 :(得分:1)
我会使用try / catch方法来回显语句。但是我使用PDO。
foreach ($fulldata as $partdata){
$name=$partdata['name'];
$acno=$partdata['acno'];
$trdate=$partdata['trdate'];
$sql="INSERT into mytable (name,acno,trdate) values (?,?,?)";
try {
$query = $db->prepare($sql);
$query->execute(array($name, $acno, $trdate));
} catch (PDOException $e) {
echo $e->getMessage();
echo 'Fail to execute following statement: ' . $sql ."\r\n";
}
}
现在我还将插入语句失败。