我一直在努力將文本文件中的字符串插入到MySQL數據庫中。但是在這些字符串中可能會有隨機轉義字符,會影響BaSH或MySQL。最初我試圖將整個文字文件傳給MySQL,並在那裏處理它。不過,現在我認爲最好是削減數據,並在BaSH中處理這些數據。如何避免MySQL/BaSH中的特殊/轉義字符
我正在運行一切腳本文件,並不是最好的BaSH,我實際上主要使用MySQL或其他語言如C#或Java。
我知道你可以將其他語言嵌入到BaSH腳本中,但是最後我仍然需要將字符串傳遞給MySQL來插入,並且我需要保留文本文件的原始值。
那麼,有沒有辦法讓這些字符串與MySQL的語言只是忽略字符串中的字符,所以它會保留它,而不會造成問題?
#!/bin/bash
cd /srv/mysql_PROJ/DB_scripts
echo ""
for dir in `cat ../pathlist.txt`; do
for file in `/bin/ls -1 ${dir}/*.txt`; do
echo "Processing: dir(${dir})/file(${file}); `cat ${file} | wc`"
mysql -u rpm -p'password' --show-warnings --max_allowed_packet=16M call rpmdb.DataButcher(_utf8'`cat ${file}`');
echo "Data inserted for: `cat ${dir}`"
echo ""
done
done
echo "Data parse and insert: Done."
這是我之前的代碼,我有一個更復雜的MySQL程序處理它。從我可以告訴它會碰到一個字符,並只傳遞部分文本到MySQL,然後在MySQL中引起問題,文本文件中的以下行嘗試作爲BaSH運行,顯然它們不是BaSH命令。希望這會有所幫助,這是一個我不斷回來的較舊的項目,最後我看着它,我被困住了。用一種新的思維,我試圖以不同的方式來對待它。
注意:在MySQL的過程被稱爲「DataButcher」
只有文字?給你一些代碼,這樣我們就可以把手弄髒! – PradyJord
無關:BaSH或BASh? – Rudie