Php 从一个表导入数据并将其插入到另一个表中

Php 从一个表导入数据并将其插入到另一个表中,php,mysql,Php,Mysql,我有两个表product\u myob和products。我想做的是,当单击导入按钮将产品导入表产品时,从product\u myob导入产品。表products已包含一些产品 我尝试执行下面的查询,但表没有更新。请帮我查一下密码 INSERT INTO products(myob_id, myob_displayID, Name) SELECT UID,displayID,itemName FROM product_myob WHERE UID NOT IN (SELECT m

我有两个表
product\u myob
products
。我想做的是,当单击导入按钮将产品导入表
产品时,从
product\u myob
导入产品。表
products
已包含一些产品

我尝试执行下面的查询,但表没有更新。请帮我查一下密码

INSERT INTO products(myob_id, myob_displayID, Name)
  SELECT UID,displayID,itemName 
  FROM product_myob 
  WHERE UID NOT IN (SELECT myob_id from products);

这是您可以使用的示例代码。但是使用MySQLi是因为MySQL已经被弃用了

<?php

/* ESTABLISH CONNECTION AND CHANGE THE NECESSARY HOST, USERNAME, PASSWORD AND DATABASE */

$connection=mysqli_connect("YourHost","YourUsername","YourPassword","YourDatabase");

if(mysqli_connect_errno()){

echo "Error".mysqli_connect_error();
}

$result=mysqli_query($connection,"SELECT * FROM product_myob");
while($row=mysqli_fetch_array($result)){

$myobid=mysqli_real_escape_string($con,$row['UID']);
$myobdisplayid=mysqli_real_escape_string($con,$row['displayID']);
$name=mysqli_real_escape_string($con,$row['itemName']);

/* CHECK IF DATA IS ALREADY IN THE products TABLE */

   $result2=mysqli_query($connection,"SELECT * FROM products WHERE myob_id='$myobid' AND myob_displayID='$myobdisplayid' AND Name='$name'");

   if(mysqli_num_rows($result2)==0){

   mysqli_query($connection,"INSERT INTO products (myob_id, myob_displayID, Name) VALUES ('$myobid','$myobdisplayid','$name')");

   } /* END OF IF MYSQLI_NUM_ROWS($RESULT2) IS 0 */

   else {
   echo "Data has already been inserted before.<br>";
   }

} /* END OF WHILE LOOP RESULT */

?>

似乎您的products表上有一个唯一的检查,并且您正在插入一些重复的数据。如果是这种情况,那么您可以通过下面的查询忽略重复的值,即使您不需要在product表中检查UID,因为此查询会自动忽略它。另外,请详细说明您的问题:

INSERT ignore INTO products(myob_id, myob_displayID, Name)
  (SELECT UID,displayID,itemName 
  FROM product_myob);

您有任何错误详细信息吗?foreach($products as$key=>$value){$productcheck=“从product\u myob中选择count(PID),其中displayID=''.$value->Number.'”;$procheckrs=mysql\u query($procheckrs);$proavailablecnt=mysql\u fetch\u array($procheckrs);$proavailablecnt=$proavailable[0];if($proavailablecntName)。(“$value->Number.”)已成功添加
“;}myob_id、myob_displayID、products表名称的数据类型应与product_myob表的UID、displayID、itemName的数据类型相匹配。如果是这样,请首先尝试直接在数据库上执行查询。最好首先直接在数据库上执行查询。然后,您可以看到任何问题。数据类型与sql中忽略的内容相匹配t请检查更新的答案,因为您不需要检查产品表中的UID,因为此查询会自动删除重复项…如果myob_id是主键或其上的唯一约束..根据我的假设应该在其上。。