2017-01-23 8 views
0

この問題に関するいくつかの質問があります。私は多くのことを試みたが、何も働かなかったので、私はこれを再び投稿した。PHP mysqlダンプが動作しない

私は、phpとmysqldumpを使用してSQL形式でデータベースバックアップ全体を作成しようとしています。私は数日前に動作するコードを持っていますが、突然停止してしまい、もう動作しません。ここ は私のコードです:

$q = "mysqldump --user=$mysqlUserName --password=$mysqlPassword --host=$mysqlHostName $mysqlDatabaseName > $mysqlExportPath"; 
exec($q, $output = array()); 

それは私にこの警告を与え、また、SQLのバックアップを作成しません。

Strict Standards: Only variables should be passed by reference 

私は立ち往生しています。私のサーバはCoderoとLinuxベースです。

答えて

0

それはあなた

$q = "/usr/bin/mysqldump -u $mysqlUserName -p $mysqlPassword -h $mysqlHostName $mysqlDatabaseName > $mysqlExportPath"; 
$output = array(); 
exec($q, $output); 
+0

'$ output'を' exec'関数で初期化して2番目のパラメータとして渡すと、警告が表示されます。 –

+0

私は同じことを試みました。警告は消えましたが、SQLダンプは作成されませんでした。 –

0

変更コードexec($q, $output);exec($q, $output = array());を助けるかもしれません。それは動作するはずです。

exec機能の詳細については、php.netをご覧ください。 2番目の引数は配列への参照をとります。エラーメッセージがあなたに伝えていることです。 $ output配列を初期化したい場合は、関数に渡す前に別の行で行います。

希望します。

+0

SQLダンプがまだ作成されていない場合は、エラーログを確認してください。権限の問題でもあります。 –

+0

私はチェックしています。 –

+0

私はそれを確認し、それがユーザの "すべての特権"に設定されていることを確認しました。エラーログファイルにもエラーはありません。 –

関連する問題