저는 이틀 동안이 문제를 조사해 왔으며, 저에게 맞는 작품은 없습니다. 다음과 같은 경우입니다. 사용자가 데이터를 설정합니다. 해당 행이있는 경우 user_id(Primary Key)
행이 업데이트됩니다 (행이 삽입되지 않은 경우). 지금까지는 그렇게 좋았지 만 사용자가 동일한 값을 설정하면 업데이트되지 않고 삽입 쿼리가 실행되었습니다. 이는 이미 user_id
에 대한 행이 있기 때문에 오류가 표시됩니다. 그래서 값이 같고 삽입을 실행하지 않아 행이 업데이트되지 않았 음을 어떻게 감지합니까?PHP/MySQL 같은 값으로 업데이트되지 않았는지 확인하십시오.
UPDATE %s SET %s WHERE `user_id`=%d
if ($this->db->affected_rows() <= 0) {
INSERT...
}
그리고 값이 동일하고 mysqli_affected_rows
가 0
을 반환 이후 얻을 :
현재 내 코드는 내가 INSERT IGNORE
을 읽은
Duplicate entry 'xxxxx' for key 'PRIMARY'
권장하지 않습니다에서, 때문에 오류가 표시되지 않으며 그러한 오류가 있는지 알아야합니다. INSERT ON DUPLICATED KEY
은 매우 느리고 사용하고 싶지 않습니다. 그럼 내 옵션은 뭐니?
미리 감사드립니다.
감사해야 할 것입니다 ON. INSERT UPDATE에서 INSERT를 변환합니다. – Lanexbg