新ソリューション:
<?php
$descriptorspec = array(
0 => STDIN,
1 => STDOUT,
2 => STDERR
);
$process = proc_open('mysql -uroot', $descriptorspec, $pipes);
旧1:
タブ補完のための保存(あなたの代わりにfgetsのを使用しての関数freadでバイトを読み出す場合は、おそらくそこにそれを得ることができる)、このあなたの道に迷ってしまいます。たくさんの調整が必要です。
<?php
$descriptorspec = array(
0 => array("pty"),
1 => array("pty"),
2 => array("pty")
);
$process = proc_open('mysql -uroot', $descriptorspec, $pipes);
stream_set_blocking($pipes[1], 0);
stream_set_blocking($pipes[2], 0);
stream_set_blocking(STDIN,0);
do {
echo stream_get_contents($pipes[1]);
echo stream_get_contents($pipes[2]);
while($in = fgets(STDIN)) fwrite($pipes[0],$in);
} while (1);
あなたはエラーが発生していますか?また、 '-u'と' root'の間に 'mysql -u root'とスペースがあるはずです。 – Dirk
@Dirk:-urootともに動作します – Fabio
スペースなしでも動作します。資格情報が間違っていると、mysql接続エラーが発生します。しかし、それらが正しいならば、それはちょうどハングアップし、私はCtrl + Cでそれから抜け出す必要があります。 – Homer6