Rumah >pangkalan data >tutorial mysql >Bagaimana untuk menetapkan tamat masa sambungan untuk PDO dalam PHP?

Bagaimana untuk menetapkan tamat masa sambungan untuk PDO dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-11-04 12:59:021017semak imbas

How to Set a Connection Timeout for PDO in PHP?

PDO Connect Timeout: Penyelesaian Terperinci

Pengenalan:
Menyambung ke pangkalan data kadangkala boleh mengambil masa jumlah masa yang berlebihan disebabkan oleh pelbagai faktor seperti isu rangkaian atau ketersediaan pelayan. Ini boleh mengecewakan terutamanya apabila bekerja dengan sistem Pengeluaran.

Tetapan Atribut PDO:
OP cuba menetapkan tamat masa menggunakan PDO::setAttribute() dengan atribut PDO::ATTR_TIMEOUT , tetapi ia tidak menyelesaikan isu tersebut. Ini kerana tetapan tamat masa digunakan pada pelaksanaan pernyataan PDO, bukan pada penubuhan sambungan.

Penyelesaian Optimum:
Penyelesaian yang disyorkan untuk menetapkan tamat masa sambungan adalah dengan memberikan nilai tamat masa sebagai parameter konfigurasi semasa pemulaan objek PDO. Ini boleh dicapai dengan menentukan PDO::ATTR_TIMEOUT dalam tatasusunan pilihan pembina.

Kod Contoh:
Kod berikut menunjukkan cara untuk menetapkan tamat masa sambungan 5 saat untuk MySQL sambungan pangkalan data:

<code class="php">$DBH = new PDO(
    "mysql:host=$host;dbname=$dbname",
    $username,
    $password,
    array(
        PDO::ATTR_TIMEOUT => 5, // in seconds
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    )
);</code>

Dengan menetapkan PDO::ATTR_ERRMODE kepada PDO::ERRMODE_EXCEPTION, sebarang ralat pangkalan data atau tamat masa akan mencetuskan PDOException, yang boleh ditangkap dan dikendalikan dengan sewajarnya.

Atas ialah kandungan terperinci Bagaimana untuk menetapkan tamat masa sambungan untuk PDO dalam PHP?. 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