gpt4 book ai didi

php - 插入新行,更新旧行 : how?

转载 作者:行者123 更新时间:2023-11-29 06:21:17 25 4
gpt4 key购买 nike

我正在制作一个 PHP 实用程序,它将 CSV 文件导入并分析到 $data 中,以及是否将"new"行插入数据库 ($saveNew )。

现在,我遇到了一些丑陋的困惑:(在广义的伪 PHP 中)

function synchronize($data,$saveNew) {
$existing_ids = $table->find_all('ID'); //array of ID's in the table
$incoming_ids = get_key('ID',$data); //grabs the ID field from each record
$new_ids = array_diff($incoming_ids,$existing_ids);

foreach ($data as $record) {
if (in_array($record['ID'],$new_ids)) { //it's new
if ($saveNew) $table->insert($record);
else continue;
} else {
$table->update($record);
}
}
}

对我来说,这只是有一种味道,我想我可以通过一个查询来完成这个任务,只是我对 SQL 不太熟悉。

我在应用程序中使用简单的 ORM,但我可以轻松地直接使用 SQL。

哦,我正在使用 MySQL。

这可以通过一个查询来完成吗?这似乎是一个常见问题,有一个简单的解决方案,但我就是无法弄清楚。

最佳答案

看看 MySQL 的 INSERT ... ON DUPLICATE KEY ... 语法,它允许您执行此操作:http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html

您是否想在 ORM 中或在您的特定子例程中实现它取决于您......

关于php - 插入新行,更新旧行 : how?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3372583/

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