phpスクリプトでテーブルを操作する前に、データベース全体をバックアップしたいので、mysqldumpの使用を検討しました。
shell_exec()を使用してmysqldumpコマンドを実行し、次のように成功したかどうかを確認しようとしました。
$command = 'mysqldump -u username -ppassword database > /path/database.sql';
$result = shell_exec($command);
if(!is_null($result)) {
echo 'Error during backup';
else {
echo 'Database saved';
// rest of the php script to modify the database (create/drop tables etc)
}
しかし、ファイルを書き込めないパス(既存のディレクトリがない、またはシェルプロンプトで拒否されたアクセス許可を返す必要があるパス)を指定した場合でも、$resultが常にnullであることに気付きました。
私は何が欠けていますか?