gpt4 book ai didi

php - 在从数组添加到数据库之前检查 SQL 条目是否存在

转载 作者:行者123 更新时间:2023-11-30 21:55:21 24 4
gpt4 key购买 nike

数组 $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));

最佳答案

在数据库中创建主键/唯一键并使用 INSERT ... ON DUPLICATE KEY UPDATEINSERT IGNORE INTO TABLE 语法:

  1. 在 phpmyadmin 中为 title 列创建唯一索引
  2. 在您的 php 脚本中,使用以新价格更新现有记录的查询,或者完全忽略 Insert 语句

关于php - 在从数组添加到数据库之前检查 SQL 条目是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45425551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com