Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
BASH脚本get';从mySQL中删除行数据,并使用该数据启动PHP脚本_Mysql_Bash - Fatal编程技术网

BASH脚本get';从mySQL中删除行数据,并使用该数据启动PHP脚本

BASH脚本get';从mySQL中删除行数据,并使用该数据启动PHP脚本,mysql,bash,Mysql,Bash,我已经尝试了几个小时将行数据存储到BASH var中,然后使用它来启动一些PHP脚本 到目前为止,我只能呼应出整个结果集。我已经破坏了那个脚本,所以我甚至不能把它粘贴到这里。这就是我所拥有的,根本不起作用 #! bin/bash query=`echo "SELECT id FROM searches WHERE running=1 AND id_user=2" | mysql -u root` 我以前从未使用过BASH,所以我完全迷路了 我需要的是一些资源,可以向我展示如何连接到mysql,

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

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

#! bin/bash
query=`echo "SELECT id FROM searches WHERE running=1 AND id_user=2" | mysql -u root`
我以前从未使用过BASH,所以我完全迷路了

我需要的是一些资源,可以向我展示如何连接到mysql,然后使用该行中的数据循环通过结果集


谢谢。

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

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

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

您可以在读取时使用
mysql--silent
输出到BASH变量中:

>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变量(实际上不需要,只是帮助可读性)
  • mysql-e
    e选项允许您传入查询,因此不需要STDIN
  • mysql--silent
    --silent会抑制mysql通常所做的额外格式设置。在我的测试中,这实际上也是不必要的(输出中的管道字符没有搞乱Bash)
  • php-f..
    执行一个php文件,将当前id作为参数传递