ロールバックを可能にするために、PhpMyAdmin データベース エンジンを MyISAM から INNODB に更新しました。
これは私のSQLクエリです:
START TRANSACTION;
UPDATE jkm_content SET state=0 WHERE title IN ('title-1','title2');
そして結果:
start transaction;# MySQL returned an empty result set (i.e. zero
rows).
UPDATE jkm_content SET state=1 WHERE title IN ('title-1','title2');# 2 rows affected.
1)したがって、ステートメントは2行が影響を受けていることを通知しますが、変更はどこにも表示されません(DBにもWebサイトにも表示されません)。ただしstart transaction
、(一時DBで)変更を視覚化できるようにします。クエリを「コミット」します。commit
( DB を更新する必要があることは理解していますが、その場合commit
、変更は永続的になります)。
rollback
2)それをコミットする前に効果が見えない場合は、ポイントがわかりません。これら2つのクエリの違いは何ですか:
START TRANSACTION;
UPDATE jkm_content SET state=0 WHERE title IN ('title-1','title2');
と
START TRANSACTION;
UPDATE jkm_content SET state=0 WHERE title IN ('title-1','title2');
ROLLBACK;
3) 私が正しければ、これらの関数はすべて同じです:
START TRANSACTION
BEGIN
BEGIN WORK