php防止重复添加,php-防止重复插入

我有一个脚本,我已经设置了一个CRON来通过JSON(cURL)从第三方服务器获取值

现在,每次cron运行时,它都会插入一个全新的记录.造成重复,并导致我手动删除公仔.

我将如何防止重复,并且仅更新丢失的信息或与$var值不同的信息?

我想做的事

如果新值不是旧值,请使用旧值,否则请使用新值;

$prep_stmt = "SELECT * FROM members WHERE record NOT LIKE record=? ";

$stmt = $mysqli->prepare($prep_stmt);

if ($stmt) {

$stmt->bind_param('s');

$stmt->execute();

$stmt->store_result();

if ($stmt->num_rows !== 1) {

if ($insert_stmt = $mysqli->prepare("

INSERT INTO members (

start_date

)

VALUES (?)"))

{

$insert_stmt->bind_param('s',$repStartDate);

if (! $insert_stmt->execute()) {header('Location: ../error.php?err=Registration failure: INSERT');}

}

}

}

解决方法:

如果您不想在记录存在时进行更新,则可以使用“插入忽略”,如下所示.

mysql> SELECT * FROM visit;

Empty set (0.00 sec)

mysql> INSERT IGNORE INTO visit (user_id, total_visit) VALUES (32, 1);

Query OK, 1 row affected (0.01 sec)

mysql> INSERT IGNORE INTO visit (user_id, total_visit) VALUES (32, 1);

Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM visit;

+----+---------+-------------+

| id | user_id | total_visit |

+----+---------+-------------+

| 1 | 32 | 1 |

+----+---------+-------------+

1 row in set (0.00 sec)

如果要在记录存在时进行更新,则可以使用“重复键更新”,如下所示.

mysql> INSERT IGNORE INTO visit (user_id, total_visit) VALUES (32, 1) ON DUPLICATE KEY UPDATE total_visit = total_visit + VALUES(total_visit);

Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM visit;

+----+---------+-------------+

| id | user_id | total_visit |

+----+---------+-------------+

| 1 | 32 | 1 |

+----+---------+-------------+

1 row in set (0.00 sec)

mysql> INSERT IGNORE INTO visit (user_id, total_visit) VALUES (32, 1) ON DUPLICATE KEY UPDATE total_visit = total_visit + VALUES(total_visit);

Query OK, 2 rows affected (0.00 sec)

mysql> SELECT * FROM visit;

+----+---------+-------------+

| id | user_id | total_visit |

+----+---------+-------------+

| 1 | 32 | 2 |

+----+---------+-------------+

1 row in set (0.00 sec)

标签:curl,mysql,php

来源: https://codeday.me/bug/20191119/2036040.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值