gpt4 book ai didi

php - if语句不回避insert查询

转载 作者:可可西里 更新时间:2023-11-01 16:37:30 25 4
gpt4 key购买 nike

我正在尝试创建一个简单的 api,它可以从移动应用程序向不同的新闻添加 View 。当我使用如下网址直接在浏览器中测试时:

http://url/addview.php?type=ios&identifier=35605C24-8EA6-4342-Bdfd-245432&newsid=147

如果 news_id、type 和 identifier 已经存在,它可以在这里工作并添加重复项。但是,当我在我的 ios 应用程序中通过异步 http 请求运行此 url 时,它似乎总是添加一条新记录,即使它已经存在于 d

$con = new mysqli('host','user','pass','db');
$type = $_GET['type'];
$identifier = $_GET['identifier'];
$news = $_GET['newsid'];

$check = $con->prepare("SELECT * FROM views WHERE views.news_id =? AND views.type =? AND views.identifier=?");
$check->bind_param("iss", $news, $type, $identifier);
$check->execute();
$check->store_result();
$check->fetch();

if ($check->num_rows == 0) {
$con->next_result();
$check->close();
$add_view = $con->prepare("INSERT INTO views (views.news_id, views.type, views.identifier, views.reg_date) VALUES (?, ?, ?, CURRENT_TIMESTAMP())");
$add_view->bind_param("iss", $news, $type, $identifier);
$add_view->execute();
$add_view->close();
$con->next_result();


}

$con->close();

最佳答案

如果您不想要重复项,请添加适当的唯一索引。根据您的逻辑,我认为这将是:

create unique index idx_views_3 on views(news_id, type, identifier);

然后,插入如下:

INSERT INTO views (news_id, type, identifier, reg_date)
VALUES (?, ?, ?, CURRENT_TIMESTAMP())
on duplicate key update news_id = values(news_id);

关于php - if语句不回避insert查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29737015/

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