fix SQL quoting

This commit is contained in:
Vincent Riquer 2013-03-04 13:37:19 +01:00
parent bed67cc8f6
commit 6d5424a8b4

10
atom
View File

@ -299,7 +299,7 @@ Select() {
while read key operator value while read key operator value
do do
(( ${#where_statement} )) && where_statement+=( "AND" ) (( ${#where_statement} )) && where_statement+=( "AND" )
where_statement+=( "$key $operator "'"'"${value//\"/\\\"}"'"' ) where_statement+=( "$key $operator "'"'"${value//\"/\"\"}"'"' )
done done
echo "SELECT IFNULL(" \ echo "SELECT IFNULL(" \
"(SELECT $columns FROM $table" \ "(SELECT $columns FROM $table" \
@ -333,7 +333,7 @@ Insert() {
then then
insert_values+="NULL" insert_values+="NULL"
else else
insert_values+='"'"${value//\"/\\\"}"'"' insert_values+='"'"${value//\"/\"\"}"'"'
fi fi
done done
echo "INSERT INTO $table" \ echo "INSERT INTO $table" \
@ -372,7 +372,7 @@ Update(){
what=value what=value
;; ;;
value) value)
set_statement="${set_statement}="'"'"${argument//\"/\\\"}"'"' set_statement="${set_statement}="'"'"${argument//\"/\"\"}"'"'
what=key what=key
;; ;;
esac esac
@ -384,7 +384,7 @@ Update(){
then then
where_statement+=( "$key is NULL" ) where_statement+=( "$key is NULL" )
else else
where_statement+=( "$key $operator "'"'"${value//\"/\\\"}"'"' ) where_statement+=( "$key $operator "'"'"${value//\"/\"\"}"'"' )
fi fi
done done
echo "UPDATE '$table' SET" \ echo "UPDATE '$table' SET" \
@ -519,7 +519,7 @@ Delete() {
then then
where_statement+=( "$key is NULL" ) where_statement+=( "$key is NULL" )
else else
where_statement+=( "$key $operator "'"'"${value//\"/\\\"}"'"' ) where_statement+=( "$key $operator "'"'"${value//\"/\"\"}"'"' )
fi fi
done done
echo "DELETE from $table WHERE ${where_statement[@]};" >&3 echo "DELETE from $table WHERE ${where_statement[@]};" >&3