首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BASH script get的行数据来自mySQL,并使用这些数据启动PHP脚本

BASH script get的行数据来自mySQL,并使用这些数据启动PHP脚本
EN

Stack Overflow用户
提问于 2012-08-25 08:35:51
回答 3查看 1.7K关注 0票数 0

我已经尝试了几个小时将行数据存储到BASH var中,然后使用它启动一些PHP脚本。

到目前为止,我只能回显出整个结果集。我已经破坏了这个脚本,所以我甚至不能在这里粘贴它。这就是我所拥有的,这根本不起作用。

代码语言:javascript
复制
#! bin/bash
query=`echo "SELECT id FROM searches WHERE running=1 AND id_user=2" | mysql -u root`

我以前从来没有用过BASH,所以我完全迷路了。

我需要的是一些资源,这些资源可以告诉我如何连接到mysql,然后使用该行中的数据遍历结果集。

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2012-08-25 09:01:55

您可以使用while readmysql --silent输出读取到Bash vars中

代码语言:javascript
复制
>sql="SELECT id FROM searches WHERE running=1 AND id_user=2"
>mysql --silent -u ctrahey test -e "$sql" |while read myid; do
 php -f my_processor.php $myid; 
done
>

备注:

  • sql="...设置sql的Bash变量(实际上不是必需的,只是辅助readability)
  • mysql -e STDIN
  • mysql --silent选项允许您传入查询,因此您不需要-e -e会抑制mysql通常所做的额外格式化。在我的测试中,这实际上也是不必要的(输出中的管道字符没有弄乱Bash)
  • php -f ..这将执行一个php文件,将当前的id作为arg.

传递。

票数 2
EN

Stack Overflow用户

发布于 2012-08-25 08:50:19

Bash不是一种与mysql交互的好语言,它只适用于非常非常简单的情况。使用php代替(因为你提到了php),它有一个与mysql数据库交互的api。是的,您可以像run a php script脚本一样使用bash。

票数 0
EN

Stack Overflow用户

发布于 2012-08-25 08:59:10

如果要使用MySQL运行单个命令,请使用mysql -emysql --execute。它们是相同的命令,但第二个版本更令人难忘。如果您将此标志添加到上面的标记中,则行将存储在变量中。

然而,正如geirha所提到的,BASH可能不是获取行数据的最佳语言。但是,如果您选择解析它,那么mysql -e是执行查询的正确命令。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12118243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档