Anda memiliki lebih banyak kasus masalah daripada hanya titik koma dalam string.
- Skrip bawaan
perintah yang tidak dapat dijalankan oleh
mysql_query()
, sepertiUSE
. - Pernyataan yang tidak diakhiri dengan titik koma, seperti
DELIMITER
. - Pernyataan yang mengandung titik koma, tetapi tidak di dalam tanda kutip, seperti
CREATE PROCEDURE
.
Saya tidak tahu cara mudah untuk menangani tugas ini, tanpa keluar ke klien baris perintah mysql. Saya menyadari bahwa Anda mengatakan bahwa Anda tidak dapat mengandalkan kehadiran klien itu, tetapi tanpa klien itu, Anda memerlukan sejumlah besar kode PHP untuk mengurai skrip dan mengeksekusi pernyataan dengan tepat.
Anda mungkin dapat menemukan kode tersebut di dalam phpMyAdmin produk. Namun, produk tersebut dilisensikan di bawah GPL, jadi jika Anda menggunakan salah satu kode, Anda juga harus melisensikan proyek Anda sendiri di bawah GPL.
Lihat juga jawaban saya untuk pertanyaan terkait ini:
- Menjalankan file MySQL *.sql dalam PHP
- Memuat file .sql dari dalam PHP
- apakah mungkin untuk memanggil skrip sql dari prosedur tersimpan di skrip sql lain?