beginTransaction();}", "$pdo->commit();" dibuka seperti biasa; Semak sama ada jadual pangkalan data wujud Atau masalah sambungan 3. Gunakan enjin storan yang menyokong transaksi Dalam MySQL, hanya enjin storan InnoDB dan NDB yang menyokong transaksi."/> beginTransaction();}", "$pdo->commit();" dibuka seperti biasa; Semak sama ada jadual pangkalan data wujud Atau masalah sambungan 3. Gunakan enjin storan yang menyokong transaksi Dalam MySQL, hanya enjin storan InnoDB dan NDB yang menyokong transaksi.">

Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menyelesaikan masalah yang php tidak boleh memanggil komit

Bagaimana untuk menyelesaikan masalah yang php tidak boleh memanggil komit

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌asal
2023-06-19 10:53:081826semak imbas

Penyelesaian apabila PHP tidak boleh memanggil komit ialah: 1. Pastikan transaksi PDO "cuba {$pdo->beginTransaction();}", "$pdo->commit();" biasanya dibuka ; 2. Periksa sama ada terdapat jadual pangkalan data atau masalah sambungan 3. Gunakan enjin storan yang menyokong transaksi Dalam MySQL, hanya enjin storan InnoDB dan NDB.

Bagaimana untuk menyelesaikan masalah yang php tidak boleh memanggil komit

Sistem pengendalian untuk tutorial ini: Sistem Windows 10, versi php8.1.3, komputer Dell G3.

Panggilan `commit()` apabila menggunakan PHP tidak boleh berkuat kuasa, biasanya kerana mekanisme pengurusan transaksi tidak digunakan dengan betul.

Penyelesaian:

1. Pastikan anda telah membuka transaksi PDO.

```
try {
    $pdo->beginTransaction();
    // your database operations
} catch (PDOException $e) {
    $pdo->rollback();
    throw $e;
}
$pdo->commit();
```

2. Semak sama ada terdapat jadual pangkalan data atau isu sambungan

3. Dalam MySQL, hanya enjin storan InnoDB dan NDB menyokong transaksi.

Impak:

Jika panggilan ke `commit()` tidak sah, ia akan menghalang transaksi daripada melakukan, yang bermaksud bahawa semua perubahan pada pangkalan data akan ditarik balik, mengakibatkan hasil yang salah. Pada masa yang sama, anda tidak boleh menjamin ketekalan data dan kehilangan faedah yang disediakan oleh tahap pengasingan transaksi.

Kod sampel:

Kod sampel berikut menunjukkan cara mendayakan transaksi PDO dengan betul dan melakukan perubahan menggunakan `commit()`:

```
<?php
try {
    $dbh = new PDO(&#39;mysql:host=localhost;dbname=test&#39;, &#39;username&#39;, &#39;password&#39;);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $dbh->beginTransaction();
    $sth = $dbh->prepare(&#39;UPDATE users SET email = :email WHERE id = :id&#39;);
    $sth->bindParam(&#39;:id&#39;, $id);
    $sth->bindParam(&#39;:email&#39;, $email);
    $id = 1;
    $email = &#39;test@example.com&#39;;
    $sth->execute();
    $id = 2;
    $email = &#39;test2@example.com&#39;;
    $sth->execute();
    $dbh->commit();
} catch (PDOException $e) {
    $dbh->rollback();
    echo &#39;Error: &#39; . $e->getMessage();
}
```

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah yang php tidak boleh memanggil komit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn