4

PHPコマンドラインプログラムを実行しています。そして、PHP から直接 mysql シェルに接続したいと考えています。os.execvp を使用して Python でこれを行ったことがありますが、PHP で同じことを行うことはできません。

私は次の機能を試しました:

  • システム
  • パススルー
  • エグゼクティブ
  • shell_exec

例:

system('mysql -u root -pxxxx db_name');

しかし、それらはすべて mysql が終了して何かを返すのを待っているようです。私が本当に望んでいるのは、PHP が mysql シェルを起動してから終了することです。何か案は?

4

3 に答える 3

3

シェル コマンドをインタラクティブにしたい場合は、次を使用します。

system("mysql -uroot -p db_name > `tty`");

これはほとんどの場合に機能しますが、ターミナルにいない場合は機能しません。

于 2008-11-07T23:28:59.973 に答える
0

acrosmanが言ったことに加えて、-eスイッチを使用してコマンドラインからSQLを渡すこともできます。

$sql = ".....";
system("mysql -u root -pxxxx db_name -e \"$sql\"");

また、PHPアプリケーションからrootとしてデータベースに実際に接続しないことを願っています。

于 2008-11-07T17:37:35.440 に答える
0

MySQL に、PHP スクリプトとは別のスクリプトを実行させます。

system('mysql -u root -pxxxx db_name < script.mysql');
于 2008-11-07T17:26:48.333 に答える