2016-05-09 95 views
1

我有一個緩存腳本,它使用PHP(Cron作業每5分鐘)從SOAP API請求一堆數據。該腳本請求並存儲客戶idnameMySQL - 可以'插入到 - 重複密鑰更新'導致數據丟失

該API的信息存儲在該表有3列:

'id' = int, Primary_key 
'name' = varchar(255) 
'paying' = bool 

周圍有10(80)的客戶提供布爾paying設置爲TRUE。但是,每隔一段時間,所有客戶的paying列都會恢復爲0

所以......以下查詢可以在任何情況下導致paying列發生更改嗎?

INSERT INTO customer(`id`, `name`) VALUES ('$escapedId','$escapedName') ON DUPLICATE KEY UPDATE `name`='$escapedName' 
+0

數據庫中的客戶表上是否有唯一索引?或任何其他索引? – kejsu

+0

@kejsu'id'列是主鍵,'id'和'name'列是由API提供的。 – kgongonowdoe

回答

1

此查詢無法更改「付款」字段狀態。

因此,最有可能的原因是一些其他代碼將值設置爲0,或者只是刪除所有記錄。