数组$sql
中的值正被添加到数据库$safe_id
中。 $sql
从数组$list
获取其值,其中包含来自网站的已爬网动态标题和价格信息。以下是$list
的一些示例数据:
[0]=> array(2) {
["title"]=> string(53) "Axe Heaven Miniatuur gitaar | Vintage Sunburst Finish"
["price"]=> string(10) "€ 31,50"}
[1]=> array(2) {
["title"]=> string(59) "Axe Heaven Miniatuur gitaar | Neil Young Vintage Distressed"
["price"]=> string(10) "€ 31,50" }
添加到数据库工作。但是,每次运行脚本时,都会添加所有数据而不检查重复项,从而导致大量重复条目。我正在尝试使用变量$exists
检查表中是否存在数据。目标是仅在表不存在时将数据添加到表中。任何人都可以对此有所了解吗?
$sql = array();
foreach($list as $row) {
$title = mysqli_real_escape_string($con,$row['title']);
$price = mysqli_real_escape_string($con,$row['price']);
$exists = mysqli_query($con, "SELECT title FROM $safe_id WHERE title = '$title'");
$doesexists = $exists->fetch_object()->title;
if(!$doesexists) {
$sql[] = '("'.$title.'" , "'.$price.'")';
}
}
mysqli_query($con, "INSERT INTO $safe_id (title, price) VALUES ".implode(',', $sql));
答案 0 :(得分:0)
在数据库中创建主/唯一键并使用INSERT ... ON DUPLICATE KEY UPDATE OR INSERT IGNORE INTO TABLE
语法:
title