Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Melaksanakan Fail MySQL *.sql daripada PHP Menggunakan shell_exec()?

Bagaimanakah Saya Boleh Melaksanakan Fail MySQL *.sql daripada PHP Menggunakan shell_exec()?

Patricia Arquette
Patricia Arquetteasal
2024-12-10 15:45:16399semak imbas

How Can I Execute MySQL *.sql Files from PHP Using shell_exec()?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn