Melaksanakan MySQL *.sql Files dalam PHP
Apabila mencipta pangkalan data tapak web, anda mungkin menghadapi senario di mana anda perlu melaksanakan . fail sql daripada PHP untuk mengautomasikan penjanaan tapak. Walaupun Zend_Framework boleh memberi manfaat, menjalankan .fail sql terus daripada PHP boleh mencabar kerana ketidakkonsistenan dalam pernyataan SQL.
Penyelesaian: Menggunakan shell_exec()
Pendekatan yang disyorkan adalah untuk menggunakan alat mysql menggunakan shell_exec() untuk melaksanakan anda *.skrip sql. Berikut ialah contoh:
$command = 'mysql' . ' --host=' . $vals['db_host'] . ' --user=' . $vals['db_user'] . ' --password=' . $vals['db_pass'] . ' --database=' . $vals['db_name'] . ' --execute="SOURCE ' . $script_path ;
Arahan ini mencipta perintah pelaksanaan MySQL dengan parameter yang diperlukan untuk melaksanakan fail *.sql yang dinyatakan dalam $script_path.
Perbezaan antara shell_exec() dan exec()
Walaupun kedua-dua fungsi melaksanakan luaran perintah, mereka mempunyai beberapa perbezaan. shell_exec() menangkap output perintah dan mengembalikannya sebagai rentetan, manakala exec() mengembalikan status pelaksanaan perintah. Dalam kes ini, shell_exec() lebih disukai untuk mendapatkan output arahan MySQL.
Pertimbangan Tambahan
Apabila melaksanakan fail *.sql, pastikan arahan itu merangkumi semua parameter yang diperlukan (db_host, db_user, db_pass, db_name) dan anda mempunyai kebenaran yang mencukupi untuk melaksanakan skrip. Selain itu, gunakan pilihan --execute="SOURCE ..." dan bukannya < untuk melaksanakan fail.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Fail MySQL *.sql daripada PHP Menggunakan shell_exec()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!