php exec mysql пустой вывод - PullRequest
       1

php exec mysql пустой вывод

2 голосов
/ 04 ноября 2011

Я пытаюсь зафиксировать вывод ошибки.

   <?php
        $output = array();
        $command = <<<END
mysql -h$host -u$user --password='$pass' --execute="create database $name;" 2>&1
END;
        exec($command, $output, $code);
    ?>
  1. $ output не возвращает значения
  2. $ code возвращает 0

Но этот запрос возвращает ошибку в терминале: «база данных уже существует".

Когда я удаляю 2> & 1

     $command = <<<END
        mysql -h$host -u$user --password='$pass' --execute="create database $name;"
END;
     exec($command, $output, $code);
  1. $ вывод не возвращает значение
  2. $ код возвращает 1

Как я могу получить правильный вывод $ и значение $ code?

Ответы [ 2 ]

2 голосов
/ 20 января 2012

Была такая же проблема, за исключением того, что я импортировал файл .sql вместо использования --execute

Это сработало после того, как я добавил 2> & 1 и использовал двойные кавычки вместо синглов.

exec("mysql -h $host -u $user -p$pass my_db < \"faulty_sql.sql\" 2>&1",$output);
0 голосов
/ 04 ноября 2011

Использование system ()

p.s: почему бы не использовать msyql_query('your query');?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...