Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menetapkan masa untuk PHP menyambung ke pangkalan data
PHP ialah bahasa skrip bahagian pelayan yang digunakan secara meluas yang boleh berinteraksi dan berkomunikasi dengan pelbagai pangkalan data. Dalam pembangunan sebenar, kita sering menghadapi situasi di mana kita perlu menyambung ke pangkalan data. Terdapat banyak faktor yang terlibat apabila PHP menyambung ke pangkalan data, salah satu faktor penting ialah penetapan masa sambungan. Artikel ini akan memperkenalkan secara ringkas cara menetapkan masa untuk PHP menyambung ke pangkalan data.
1. Tetapan masa sambungan pangkalan data PHP
Masa untuk menyambung ke pangkalan data dalam PHP biasanya dikawal oleh dua pembolehubah: tamat masa sambungan dan tamat masa pertanyaan. Tamat masa sambungan merujuk kepada masa menunggu maksimum untuk menyambung ke pangkalan data Jika pangkalan data tidak dapat disambungkan dalam masa ini, permintaan sambungan akan gagal merujuk kepada masa menunggu maksimum untuk pelaksanaan pertanyaan permintaan sambungan akan gagal Jika pertanyaan tidak dapat diselesaikan, pelaksanaan akan ditinggalkan dan mesej ralat akan dikembalikan.
Selepas PHP 5.3, anda boleh menetapkan tamat masa sambungan dan tamat masa pertanyaan dengan menambahkan kata kunci tamat masa dalam parameter. Contohnya adalah seperti berikut:
$conn = mysqli_connect($host, $username, $password, $dbname, $port, null, array('connect_timeout' => $connect_timeout, 'query_timeout' => $query_timeout));
Antaranya, $connect_timeout dan $query_timeout masing-masing mewakili tamat masa sambungan dan tamat masa pertanyaan, dalam beberapa saat.
Selain itu, dalam PDO, anda juga boleh mengawal masa sambungan dengan menetapkan atribut Contohnya adalah seperti berikut:
$pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pass, array(PDO::ATTR_TIMEOUT => $timeout));
Di mana, $timeout mewakili tamat masa dalam beberapa saat.
2. Bagaimana untuk menetapkan tamat masa sambungan dan tamat masa pertanyaan
Dalam PHP, tamat masa sambungan boleh ditetapkan dalam parameter dalam tetapan. Kod sampel adalah seperti berikut:
$conn = mysqli_connect($host, $username, $password, $dbname, $port, null, array('connect_timeout' => $connect_timeout, 'query_timeout' => $query_timeout));
Antaranya, $connect_timeout mewakili tamat masa sambungan, dalam saat $query_timeout mewakili tamat masa pertanyaan, dalam saat. Kita boleh menetapkan nilai kedua-dua parameter ini mengikut keperluan.
Tetapan tamat masa pertanyaan dalam PHP secara amnya melibatkan dua parameter MySQL: tunggu_masa tamat dan interaktif_masa tamat. wait_timeout merujuk kepada masa klien menunggu pelayan untuk menutup sambungan dalam keadaan tidak aktif; interactive_timeout merujuk kepada masa klien menunggu untuk pelayan menutup sambungan dalam keadaan tidak aktif pilihan "INTERAKTIF". Secara lalai, nilai kedua-dua parameter ini ialah 28800 saat, iaitu 8 jam.
Dalam PHP, kita boleh mengawal masa pelaksanaan pertanyaan dengan menyatakan tamat masa dalam pernyataan SQL. Kod sampel adalah seperti berikut:
$stmt = $conn->prepare("SELECT * FROM users WHERE id=?"); $stmt->bind_param("i", $id); $stmt->execute(); $stmt->store_result(); $stmt->sqlstate(); $stmt->get_warnings(); $stmt->errno(); $stmt->error(); $stmt->fetch();
Apabila melaksanakan pernyataan pertanyaan, kita boleh menambah kod berikut:
$stmt->query("SET SESSION wait_timeout=120");
Dengan cara ini, tamat masa boleh ditetapkan di sini, di sini kami menetapkannya kepada 120 Saat. Memandangkan wait_timeout ialah parameter sebelah pelayan, tetapan masa tamat ini adalah kasar dan tidak cukup terperinci.
3. Ringkasan
Apabila PHP menyambung ke pangkalan data, anda perlu memberi perhatian kepada tetapan masa sambungan, termasuk tamat masa sambungan dan tamat masa pertanyaan. Kita boleh mencapai ini dengan menyatakan tamat masa dalam parameter sebagai tambahan, kita juga boleh menentukan tamat masa dalam pernyataan SQL untuk mengehadkan masa pelaksanaan pertanyaan. Untuk kawalan tamat masa yang lebih terperinci, pemahaman yang lebih mendalam tentang parameter sisi pelayan MySQL diperlukan. Dalam pembangunan sebenar, kita perlu menetapkan tamat masa secara munasabah mengikut situasi khusus untuk memastikan kestabilan dan kebolehpercayaan sistem.
Atas ialah kandungan terperinci Bagaimana untuk menetapkan masa untuk PHP menyambung ke pangkalan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!