Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengimport Fail MySQL Besar dengan Cekap ke Hosting Dikongsi Menggunakan PHP?
Dalam bidang pembangunan web, keperluan untuk mengimport fail pangkalan data yang besar semasa menggunakan penyedia pengehosan kongsi lazimnya timbul. Malangnya, mengakses MySQL melalui baris arahan mungkin dihadkan, memerlukan penyelesaian berasaskan PHP untuk menghurai dan melaksanakan pertanyaan.
Untuk menangani cabaran ini, fungsi teguh yang dikenali sebagai SplitSQL() telah dibangunkan untuk membahagikan dengan pasti fail pangkalan data ke dalam pertanyaan individu tanpa menggunakan memori yang berlebihan.
SplitSQL() memanfaatkan pendekatan membaca fail, berulang melalui fail baris demi baris. Ia mengenal pasti pertanyaan dengan mengesan pembatas yang ditentukan (; secara lalai) pada penghujung baris. Sebaik sahaja pertanyaan lengkap dipasang, ia dilaksanakan serta-merta menggunakan mysql_query().
<code class="php">function SplitSQL($file, $delimiter = ';') { set_time_limit(0); if (is_file($file) === true) { $file = fopen($file, 'r'); if (is_resource($file) === true) { $query = array(); while (feof($file) === false) { $query[] = fgets($file); if (preg_match('~' . preg_quote($delimiter, '~') . '\s*$~iS', end($query)) === 1) { $query = trim(implode('', $query)); if (mysql_query($query) === false) { echo '<h3>ERROR: ' . $query . '</h3>' . "\n"; } else { echo '<h3>SUCCESS: ' . $query . '</h3>' . "\n"; } while (ob_get_level() > 0) { ob_end_flush(); } flush(); } if (is_string($query) === true) { $query = array(); } } return fclose($file); } } return false; } // Test data $file = '/path/to/db_dump.sql'; SplitSQL($file);</code>
Atas ialah kandungan terperinci Bagaimana untuk Mengimport Fail MySQL Besar dengan Cekap ke Hosting Dikongsi Menggunakan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!