【问题标题】:shell_excec() does not return MySQL result formattedshell_exec() 不返回 MySQL 结果格式
【发布时间】:2016-12-04 10:05:41
【问题描述】:

我想让我的生活更轻松,所以我尝试制作标准命令行命令来为我格式化 mysql 结果。

$query = "select name from accounts limit 10";
$cmd = "mysql -u$user -p$pw -e \"$query\" $db_name";
$ret = shell_exec($cmd);
echo $ret;

但我得到的结果是

name
3+kk, s.r.o.
3CLogic. Inc
3ok s.r.o.
3P Consulting, s.r.o.
3xlab
4profit, s.r.o.
A C T I V A
A test acc
A4B, a.s.
AB Trade Europe s.r.o.

而不是格式化的命令行输出

+------------------------+
| name                   |
+------------------------+
| 3+kk, s.r.o.           |
| 3CLogic. Inc           |
| 3ok s.r.o.             |
| 3P Consulting, s.r.o.  |
| 3xlab                  |
| 4profit, s.r.o.        |
| A C T I V A            |
| A test acc             |
| A4B, a.s.              |
| AB Trade Europe s.r.o. |
+------------------------+

如何让 shell_exec() 函数返回格式化的表单?

【问题讨论】:

  • 为什么要在 shell 中这样做?
  • 我认为您从任一输出中获得的格式/布局没有区别。您想要网格以及数据库中的结果吗?如果是这样的话。 Thays 将付出更多的努力而不是处理结果的价值

标签: php mysql bash shell formatting


【解决方案1】:

如果 mysql 命令的输出通过管道传输到另一个 cmd 即。您的应用程序 mysql 客户端会删除此信息,您可以使用 -t 选项将其打开。

样本

正常输出

$ mysql -uroot -e "select * from l.user_art"
+----+---------+--------+
| id | user_id | art_id |
+----+---------+--------+
|  1 |      10 |     10 |
|  2 |      20 |     30 |
|  3 |      20 |     80 |
|  4 |      10 |     90 |
|  5 |      20 |     10 |
|  6 |      23 |     10 |
|  7 |      23 |     11 |
|  8 |      23 |     12 |
|  9 |      10 |     11 |
+----+---------+--------+

在其他 cmd (cat) 中通过管道输出

$ mysql -uroot -e "select * from l.user_art" | cat
id      user_id art_id
1       10      10
2       20      30
3       20      80
4       10      90
5       20      10
6       23      10
7       23      11
8       23      12
9       10      11

使用 optin -t 进行管道输出

$ mysql -uroot -t -e "select * from l.user_art" | cat
+----+---------+--------+
| id | user_id | art_id |
+----+---------+--------+
|  1 |      10 |     10 |
|  2 |      20 |     30 |
|  3 |      20 |     80 |
|  4 |      10 |     90 |
|  5 |      20 |     10 |
|  6 |      23 |     10 |
|  7 |      23 |     11 |
|  8 |      23 |     12 |
|  9 |      10 |     11 |
+----+---------+--------+

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 2017-11-28
    • 1970-01-01
    相关资源
    最近更新 更多