php exec mysql空输出

时间:2011-11-04 09:55:52

标签: php mysql exec

我尝试捕获错误输出。

   <?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
  3. 但是此查询在终端中返回错误:“数据库已存在”。

    当我删除2&gt;&amp; 1

         $command = <<<END
            mysql -h$host -u$user --password='$pass' --execute="create database $name;"
    END;
         exec($command, $output, $code);
    
    1. $ output返回无值
    2. $ code返回1
    3. 如何获得正确的$ output和$ code值?

2 个答案:

答案 0 :(得分:2)

有同样的问题,除了我导入.sql文件而不是使用--execute

在我添加2&gt;&amp; 1并使用双引号而不是单引号后,它工作了。

exec("mysql -h $host -u $user -p$pass my_db < \"faulty_sql.sql\" 2>&1",$output);

答案 1 :(得分:0)

使用system()

p.s:为什么不使用msyql_query('your query');