문제
좋은 날!
동일한 매개 변수로 동일한 업데이트 문을 두 번 실행하려고 노력하고 있으며 두 번째 경우에는 실행되지 않은 것 같습니다.
$update_query = $this->db->connection->prepare('UPDATE `Table SET `field` = :price WHERE (`partnum` = :partnum)');
$update_query->execute(array('price' => 123, 'partnum' => test));
var_dump($update_query->rowCount()); //returns 1
// If I insert here any statement it works as expected
$update_query->execute(array('price' => 123, 'partnum' => test));
var_dump($update_query->rowCount()); //returns 0!
MySQL 쿼리 캐시가 활성화되어 있지 않습니다.
감사!
해결책
만약에 UPDATE
연속으로 데이터를 변경하지 않고 MySQL
이 행을 영향을받는 것으로 계산하지 않습니다.
mysql> SELECT val FROM t_source2 WHERE id = 1;
+-----+
| val |
+-----+
| 10 |
+-----+
1 row in set (0.00 sec)
mysql> UPDATE t_source2 SET val = 1 WHERE id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> UPDATE t_source2 SET val = 1 WHERE id = 1;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
두번째 UPDATE
성명서는 실행되었지만 적은 영향을 미치지 않았습니다 MySQL
아무것도 바뀌지 않았기 때문에의 관점.
제휴하지 않습니다 StackOverflow