ホームページ >データベース >mysql チュートリアル >shell_exec() を使用して PHP から MySQL *.sql ファイルを実行するにはどうすればよいですか?

shell_exec() を使用して PHP から MySQL *.sql ファイルを実行するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-10 15:45:16397ブラウズ

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

PHP での MySQL *.sql ファイルの実行

Web サイトのデータベースを作成する場合、 を実行する必要があるシナリオが発生する場合があります。 PHP から SQL ファイルをダウンロードしてサイト生成を自動化します。 Zend_Framework は有益ですが、.sql ファイルを PHP から直接実行するのは、SQL ステートメントの不一致のため困難な場合があります。

解決策:shell_exec() を使用する

推奨されるアプローチは、shell_exec() を使用して mysql ツールを呼び出し、*.sql スクリプトを実行することです。以下に例を示します。

$command = 'mysql'
        . ' --host=' . $vals['db_host']
        . ' --user=' . $vals['db_user']
        . ' --password=' . $vals['db_pass']
        . ' --database=' . $vals['db_name']
        . ' --execute="SOURCE ' . $script_path
;

このコマンドは、$script_path で指定された *.sql ファイルを実行するために必要なパラメータを持つ MySQL 実行コマンドを作成します。

shell_exec() の違いおよび exec()

どちらの関数も外部コマンドを実行しますが、いくつかの違いがあります。 shell_exec() はコマンドの出力をキャプチャして文字列として返し、exec() はコマンドの実行ステータスを返します。この場合、MySQL コマンドの出力を取得するには、shell_exec() を使用することをお勧めします。

追加の考慮事項

*.sql ファイルを実行するときは、コマンドにすべてのファイルが含まれていることを確認してください。必要なパラメータ (db_host、db_user、db_pass、db_name) があり、スクリプトを実行するための十分な権限があること。さらに、< の代わりに --execute="SOURCE ..." オプションを使用します。ファイルを実行します。

以上がshell_exec() を使用して PHP から MySQL *.sql ファイルを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。