Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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
从mysql中的表中检索图像,并在写入文件系统之前运行base64对其进行解码_Mysql_Bash_Shell_Base64 - Fatal编程技术网

从mysql中的表中检索图像,并在写入文件系统之前运行base64对其进行解码

从mysql中的表中检索图像,并在写入文件系统之前运行base64对其进行解码,mysql,bash,shell,base64,Mysql,Bash,Shell,Base64,我需要帮助。我被难住了 我试图从5个表中提取存储在blob中的最新图像,在将其保存为图像之前对其应用base64。下面是我的代码 我最初的问题是,我似乎无法将变量tableId传递到mysql查询中 表格名称为100001、100002、100003、100004、100005 表列与包含blob的“image”列和包含时间戳值的“Time”列相同 #!/bin/bash total=5 #value to increment the devices tablecount=100000

我需要帮助。我被难住了

我试图从5个表中提取存储在blob中的最新图像,在将其保存为图像之前对其应用base64。下面是我的代码

我最初的问题是,我似乎无法将变量tableId传递到mysql查询中

表格名称为100001、100002、100003、100004、100005 表列与包含blob的“image”列和包含时间戳值的“Time”列相同

#!/bin/bash

total=5 #value to increment the devices
tablecount=100000
    for ((i=1; i<=$total; i++))
    do
tableId=$(($tablecount + $i))
echo ${image} | base64 -d > images/$tableID.jpg
done < <(echo "SELECT image, Time FROM table_'$tableID' ORDER BY Time DESC LIMIT 1;" | mysql mydb -u someuser -pPassword)

只需删除单引号,它们将阻止shell扩展文本。您还需要在循环内执行查询

for ((i=1; i<=$total; i++))
do
    tableId=$(($tablecount + $i))
    echo "SELECT image FROM table_$tableID ORDER BY Time DESC LIMIT 1;" | mysql -sN -u someuser -pPassword mydB | base64 -d > "file$tableId.jpg"
done
我还删除了time列,并确保mysql命令不会打印头或表

以下是回路部件的测试代码和结果:

$bash t.sh 按时间描述限制1从表_10001中选择图像; 按时间描述限制1从表_10002中选择图像; 按时间描述限制1从表_10003中选择图像; 按时间描述限制1从表_10004中选择图像; 按时间描述限制1从表_10005中选择图像; $cat t.sh 总数=5 表计数=10000
对于i=1;谢谢你的帮助!但我仍然有一个问题。第1行出现错误1146 42S02:表“Table_”不存在警告:在命令行界面上使用密码可能不安全。第1行出现错误1146 42S02:表“Table_id_”不存在。我似乎无法获取变量。id部分来自何处?因为测试声音可以删除第一根管道后的所有内容,并用cat替换,然后您应该看到该段,还请确保使用一个外壳,我刚刚用bash确认它有效,请参见上文。我有个打字错误。对不起,谢谢!对不起,我是说最后一排。我正在尝试检索最新的图像块