Pertanyaan ini muncul dari waktu ke waktu. Tidak ada solusi yang baik untuk menjalankan skrip .sql langsung dari PHP. Ada kasus tepi di mana pernyataan umum dalam skrip .sql tidak dapat dieksekusi sebagai pernyataan SQL. Misalnya, alat mysql memiliki perintah bawaan
yang tidak dikenali oleh Server MySQL, mis. CONNECT
, TEE
, STATUS
, dan DELIMITER
.
Jadi saya memberikan +1 untuk @Ignacio Vazquez-Abrams jawab
. Anda harus menjalankan skrip .sql di PHP dengan menjalankan mysql
alat, misalnya dengan shell_exec()
.
Saya membuat tes ini berhasil:
$command = "mysql --user={$vals['db_user']} --password='{$vals['db_pass']}' "
. "-h {$vals['db_host']} -D {$vals['db_name']} < {$script_path}";
$output = shell_exec($command . '/shellexec.sql');
Lihat juga jawaban saya untuk pertanyaan terkait ini:
- Memuat file .sql dari dalam PHP
- apakah mungkin untuk memanggil skrip sql dari prosedur tersimpan di skrip sql lain?
- PHP:beberapa kueri SQL dalam satu pernyataan mysql_query