2016-04-14 12 views
0

symfony2に関する質問があります。コントローラでmysqlコマンドを実行するにはどうすればよいですか?輸入のようなもの。私は(実行して)が、無駄(また、私はすべてのエラーを取得していない)で試してみました: のmysql -uユーザ名--password =パスワードデータベース名< file.sqlsymfony2コントローラのmysqlコマンドを呼び出す

答えて

0
use Symfony\Component\Process\Process; 
use Symfony\Component\Process\Exception\ProcessFailedException; 

$process = new Process('mysql -u username –-password=password database_name < file.sql'); 
$process->run(); 

// executes after the command finishes 
if (!$process->isSuccessful()) { 
    throw new ProcessFailedException($process); 
} 

http://symfony.com/doc/current/components/process.html#usage

0

PDOオブジェクトを取得するには:$entityManager->getConnection()->getWrappedConnection()を...

しかし、減量されました。それ以外の場合は

、教義にあなたはSQLに似たリクエストを作成するには、組み込みのSQLベースの言語(DQL)を持っているとエンティティを返す...ドキュメントを参照してください:あなたは、シェルコマンドを実行したい場合はhttp://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html

を、あなたがこれをやろう、なぜ私は私の問題は、これよりも少し複雑だった...

+0

が表示されません。私はデータベースのベストケースのシナリオで150000行をインポートしなければならず、ユーザーがこれに対する応答を待っている間にそれを実行しなければなりませんでした。私は教義を試しましたが、時間がかかりすぎました。 mysqlのインポートは私が見つけることができる最速の方法でした。 –

+0

そして、.sqlファイルを読み込んでforeachループで処理するのはどうですか?あまりにも多くの時間がかかりますか? – Vincent

+0

sqlファイルのみが35Mbです。 foreachには150000のループがあります。そして、これは良いシナリオでしょう。 mysqlのインポートは私の問題の解決策でした。 –

関連する問題