php exec mysql 空输出

标签 php mysql exec

我 try catch 错误输出。

   <?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. $output 没有返回值
  2. $code 返回 1

如何获得正确的 $output 和 $code 值?

最佳答案

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

在我添加 2>&1 并使用双引号而不是单引号后它起作用了。

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

关于php exec mysql 空输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8007455/

相关文章:

php - 将 nginx 错误重定向到 php

php - Paypal 自定义变量唯一标识符

php - Kohana - 发布带有 ".exec"正则表达式的 javascript 代码返回内部错误

php - Windows CMD.exe "The system cannot find the path specified."

php - 交易id无效 10609

php - 哪个更适合为 RSS 编码 HTML?

python - 第一次在 Arch Linux (Manjaro) 中使用 MySQLdb 显示错误

mysql - 我应该使用 Ruby 进行计算,还是应该使用 MySQL 进行计算?

mysql - 时序数据库线性存储

php - php处理ffmpeg和进度条有什么好的功能