如果条目不存在,我正在尝试将条目从一个表复制到另一个表。下面的代码不做任何条目。我似乎无法确定它。我在这里缺少什么?
<?php
$conn = mysqli_connect("localhost", "user", "Pass123", "DB");
$copy="SELECT * FROM TIME";
$doit=$conn->query($copy);
while($row = $doit->fetch_assoc()){
$check=mysqli_query($conn, "SELECT * FROM TIME2 WHERE O_LOG='{$row['LOG']}'");
if(!$check){
$sql = mysqli_query($conn, "INSERT INTO TIME2 (O_LOG, T_IN, T_OUT, EMP, ITEM, NOTE) VALUES ('".$row['LOG']."', '".$row['T_IN']."', '".$row['T_OUT']."', '".$row['EMP']."', '".$row['ITEM']."', '".$row['NOTE']."')");
}
}
?>
最佳答案
if (!$check)
应该是
if ($check->num_rows == 0)
您只是测试查询是否有错误,而不是测试它是否没有返回任何行。
但是,您可以通过一个查询完成这一切:
INSERT IGNORE INTO TIME2 (O_LOG, T_IN, T_OUT, EMP, ITEM, NOTE)
SELECT LOG, T_IN, T_OUT, EMP, ITEM, NOTE
FROM TIME
IGNORE
修饰符告诉它默默地跳过任何会导致重复键错误的插入(我假设 LOG
是一个唯一的键)。
如果 LOG
不是唯一键,您仍然可以通过一个查询来完成:
INSERT INTO TIME2 (O_LOG, T_IN, T_OUT, EMP, ITEM, NOTE)
SELECT t.LOG, t.T_IN, t.T_OUT, t.EMP, t.ITEM, t.NOTE
FROM TIME AS t
LEFT JOIN TIME2 AS t2 ON t.LOG = t2.O_LOG
WHERE t2.O_LOG IS NULL
关于php - 将一个 MySQL 表中的条目复制到另一个表(如果不存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32465520/