bash スクリプトを使用して mysql からデータを選択し、それを php に渡すにはどうすればよいですか?

bash スクリプトを使用して mysql からデータを選択し、それを php に渡すにはどうすればよいですか?

これが私が今試していることです

PHP では次のスクリプトを実行しています:

exec('/home/user1/createinstanceinfolder.sh', $output, $return_var);

print_r($output);

これは次の Bash スクリプトを呼び出します。

declare -A arr == $(sudo mysql -u root -h localhost -e "USE mydb;SELECT * FROM users")

for i in "${arr[@]}"
do
echo "$i"
done

PHP は空の配列を出力していますが、何が間違っているのでしょうか?

答え1

正しい構文は次のとおりです。

#!/bin/bash

set -f        # disable globbing
IFS=$'\n'     # set field separator to NL (only)
arr=($(sudo mysql -u root -h localhost -e "USE mydb;SELECT * FROM users"))
 
for i in "${arr[@]}"
do
   echo "$i"
done

関連情報