Flucht MYSQL-Befehl-Linien via Bash-Skript

PHP mysql_real_escape_string() korrekt escape-Zeichen, die Probleme verursachen könnte. Was ist die beste Art und Weise zu imitieren, um diese Funktionalität für die BASH?

Ist es eh zu tun bereit mysql-Anweisungen mithilfe von bash? Dies scheint der beste Weg zu sein.

Meisten meiner Variablen nicht (sollte nicht) haben Sonderzeichen, jedoch gebe ich dem user die komplette Freiheit für Ihr Passwort. Es kann auch Zeichen wie ' und ".

Ich tun kann mehrere SQL-Anweisungen, so werde ich wollen, um ein Skript zu erstellen, dass nimmt in den Parametern und dann läuft die Anweisung. Dies ist, was ich habe, so weit:

doSQL.sh:

#!/bin/sh

SQLUSER="root"
SQLPASS="passwor339c"
SQLHOST="localhost"

SQL="$1"
SQLDB="$2"


if [ -z "$SQL" ]; then echo "ERROR: SQL not defined"; exit 1; fi
if [ -z "$SQLDB" ]; then SQLDB="records"; fi

echo "$SQL" | mysql -u$SQLUSER -p$SQLPASS -h$SQLHOST $SQLDB

und ein Beispiel zur Verwendung von Sprach-Befehl:

example.sh:

PASSWORD=$1
doSQL "INSERT INTO active_records (password) VALUES ('$PASSWORD')"

Offensichtlich dieses scheitern würden, wenn die das Passwort enthalten ein einziges Zitat.

InformationsquelleAutor ParoX | 2010-12-08

Schreibe einen Kommentar