2016-03-27 7 views
0

Wenn Sie diesen Code in bash Ausführung:MySQL Fehler 1054 - Werte mit Bindestrichen

q="$conn 'SELECT name FROM device WHERE uid='0dba9ec2-f2fe-11e5-be09-000c29437b45';'" 
r=$(ssh "$ssh_user"@"$ssh_host" $q) 
echo "R is.. " $r; 

ich diese Ausgabe:

„ERROR 1054 (42S22) in Zeile 1: Unknown column '0dba9ec2' in ' where clause '"

Wert von $ r ist null. Ich habe andere Abfragen ausprobiert, wo der WHERE Filterwert keine Bindestriche hat und es funktioniert ok, also vermute ich, dass die Bindestriche etwas damit zu tun haben können.

Ich würde mich über jede Anleitung freuen, was ich vermissen könnte?

Danke!

Antwort

0

Korrigieren Sie Ihre Anfrage. Sie verwenden 4 einfache Anführungszeichen, die sich gegenseitig aufheben. Statt einfache Anführungszeichen zu verwenden, verwenden Sie doppelte Anführungszeichen. \"

q="$conn \"SELECT name FROM device WHERE uid='0dba9ec2-f2fe-11e5-be09-000c29437b45\";'"  
+0

Vielen Dank! Ich musste ein einfaches Zitat hinzufügen, um die UID vor dem zweiten Backslash zu schließen, aber die Flucht hat es geschafft. – kilele

Verwandte Themen