Php 删除INSERT语句mysql中不包含的行

Php 删除INSERT语句mysql中不包含的行,php,html,mysql,sql,delete-row,Php,Html,Mysql,Sql,Delete Row,我有以下情况: 我有一个mysql表,在其中我上传了我的清单。该表的结构如下所示: <pre> <table> <thead> <tr> <th>SKU</th> <th>price</th> <th>quantity</th>

我有以下情况:

我有一个mysql表,在其中我上传了我的清单。该表的结构如下所示:

<pre>
    <table>
        <thead>
            <tr>
                <th>SKU</th>
                <th>price</th>
                <th>quantity</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>393939</td>
                <td>39.99</td>
                <td>32</td>
            </tr>
        </tbody>
    </table>
</pre>
现在,如果我从用于导入的inventoryfile中提取了数据,我希望从表中删除inventoryfile中没有的数据。在导入新文件之前,我无法截断该表,因为定价详细信息可能已更改,并且优先级在我的mySql表中。更多最新信息


嗯,希望有人能理解我的问题并能提供帮助。

如果我答对了,您只需插入新SKU并删除新导入中不存在的SKU。这意味着您不需要更新新导入的任何内容,如数量 如果可以,并假设sku是唯一的


两个表上是否都有某种id,以便可以从t中删除id而不是从导入表中选择id?@Mihai No我没有,我没有从表中导入,而是从文件中导入。但我有一个SKU编号,该编号在我导入到的表和导入文件中是唯一的,我可以以任何方式将此语句与文件中的insert语句一起使用吗?从t中删除SKU不在$ARRAY中这看起来非常不安全。您确定您的用户参数正确吗?mysql_查询是一个过时的接口,不应在新的应用程序中使用,并将在未来的PHP版本中删除。一个现代的替代品。如果您是PHP新手,可以通过类似的指南来解释最佳实践。我会这样做:将数据导入中间表将此表与sku上的表连接起来,并删除此连接之外的任何内容。@tadman您说得对,我正要将整个应用程序重写为PDO。在这种情况下,我肯定有正确的转义参数。谢谢,我就这样试试!看来我可以用PDO试试。。。
mysqli_query(
    $sql, 
    "INSERT IGNORE INTO de_minmaxpreis(sku, price, quantity) VALUES ('$teile[3]', '$teile[4]', '$teile[5]')"
);
$sql="select sku from de_minmaxpreis";
//get the skus in array like $oldskus[]='somesku';

//make a new data array look like $newDataSkus[$sku]=$dataArray;
foreach($oldskus as $oldSku){
  //here if odlsku is not present in new data delete it from a DB
  if( ! array_key_exists($oldSku , $newDataSkus ){
     //old sku not present anymore delete it
     $sql="delete from de_minmaxpreis .... "
  }else{
    //as sku is in DB remove that sku from newData at the end you will get data that is new and needs to be inserted
      unset($newDataSkus[$oldSku];
  } 

}
//finally inset new data
foreach($newDataSkus as $tiele){
mysqli_query(
    $dbCon, 
    "INSERT INTO de_minmaxpreis(sku, price, quantity) VALUES ('$teile[3]', '$teile[4]', '$teile[5]')"
);
}