Archiv verlassen und diese Seite im Standarddesign anzeigen : mysql per shellscript
also... ich hab ein problem mit einem shellscript das ich versuche zu schreiben.
das script soll 2 parameter übergeben bekommen. die eine gibt die spalte an (where $ersterparameter) und der 2. gibt einen wert an der dann zu dieser spalte hinzuaddiert werden soll.
mein problem ist nur das ich das mysql kommando innerhalb dieses shellscriptes nicht hinbekomme.
parameterübergabe etc hab ich schon geschafft dank hilfe :)
kann mir jemand helfen wie so ein mysql befehl aussehen soll/muss?
wie wäre es wenn du schonmal postest was du bisher hast und uns dann noch genau sagst was dein mysql befehl machen soll ... ?! :)
wenn wir nicht wissen was du willst können wir dir auch nicht helfen :D
ohje ich dachte das wäre verständlich.... aber wenn ich rede :ugly:
also:
übergeben wird als erstes eine name dann eine zahl
#
#/bin/bash
#
# mysql -u root - p pass -d datenbank -e
und da muss dann der befehl hin. die beiden parameter kann ich ja einfach per $1 und $2 ansprechen.
mir schwebt sowas vor wie:
-e UPDATE tabelle SET wert = wert + $1 WHERE $2
nur irgendwie stimmt da die syntax noch nicht so richtig
Original geschrieben von WYSIIB
-e UPDATE tabelle SET wert = wert + $1 WHERE $2
versuchs mal mit:
UPDATE tabelle SET wert = 'wert + $1' WHERE foo = '$2'
wobei du foo noch durch einen dbspalte ersetzen solltest nach der du abfragen willst :ugly:
preisfrage: werden variablen ausgewertet die innerhalb von single quotes stehen ???
antwort: nein ;)
und nachdem du deine frage ohne where bedingung formuliert hast, müsste eigentlich das statement hier das richtige sein:
UPDATE tabelle SET $1 = $1 + $2 ;
Original geschrieben von Bauchi
UPDATE tabelle SET $1 = $1 + $2 ;
Preisfrage: Macht dieses MySQL Statement noch das was WYSIIB wollte: Wenn ichs richtig verstanden habe nicht. Wenn die bash keine SingleQuotes mag dann lass sie halt weg, tut mir leid das ich nicht jeden Tag in der bash rumscripte ...
ne das addiert die beiden variablen.....
aber mir gehts ja darum das die eine die bedingung ist.....
ich probiers jetzt mal mit der variante ohne '
ich glaub der syntax des gesammten mysql befehls stimmt nicht....
bekomme beim starten des scripts die mysql help angezeigt.....
vermute irgendwas ab dem "mysql -u......" stimmt nicht....
Original geschrieben von WYSIIB
vermute irgendwas ab dem "mysql -u......" stimmt nicht....
das ist eigentlich nicht schwer:
#!/bin/sh
mysql -uuser -ppasswort -Ddatenbank -e "update tabelle set wert = wert + "$1" where foo = '"$2"'"
sieh dir genau an, wo singlequotes und doublequotes stehen.
-j
Original geschrieben von Jasper
-uuser -ppasswort -Ddatenbank
-uuser wirklich alles so zusammen geschrieben? parameter und wert?
Original geschrieben von WYSIIB
-uuser wirklich alles so zusammen geschrieben? parameter und wert?
ja, einfach hintereinander.
-j
//sorry kann gelöscht werden, mein fehler
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.