我有一个名为“crea”的数据库,其中包含一个名为“assets”的表,在此表中我有11列命名(name,description,assetType,local,temporary,data,id,create_time,access_time,asset_flags,CreatorID)
我还有一个包含许多.jp2格式图片的目录文件夹(xxxx.jp2)
我想要做的是将这些图片批量插入我数据库的“资产”表中,所以我决定使用2个shell脚本,两者都在带有图片的目录中。
当我从终端启动./assetadd.sh时,我从MySQL收到此错误:
第1行的错误1064(42000):您的SQL语法出错; 检查与您的MySQL服务器版本对应的手册 在第1行的'??,asset_flags,CreatorID)VALUES附近使用正确的语法
我不知道这些脚本有什么问题,语法错误在哪里......我多次检查表/列的名称,看看我是否犯了错误,但看起来都很好。
如果有人有一点时间看一下这些脚本,并告诉我这有什么问题,这将是非常令人厌恶的。
谢谢
PS:我的操作系统是Ubuntu 11.10
- 脚本1:assetsadd.sh
#!/bin/bash
path=$(pwd)
find $path/ -type f \( -iname *.jp2 \) -exec ./insertjp2.sh {} \;
echo "finished!!"
- 脚本2:insertjp2.sh
#!/bin/bash
user="crea"
password="crea"
database="crea"
dbhost="localhost"
creator="crea"
param=$@
basenam=${param##*/}
filenam=${basenam%.*}
MYSQL=`/usr/bin/mysql -u$user -p$password -D$database -e"INSERT INTO assets (name,description,assetType,local,temporary,data,id,create_time,access_time,asset_flags,CreatorID) VALUES ('$filenam','$filenam',0,0,0,LOAD_FILE('$param'),'$filenam',UNIX_TIMESTAMP(),1325304546,0,'$creator' );"`
echo $param >> assetadd.log
echo $MYSQL
答案 0 :(得分:0)
您似乎在错误消息的位置有一个奇怪或不可打印的字符:
access_time,asset_flags
^