Shell Mysql-Insert

Shell Mysql-Insert

Auf dem Weg, PHP zu ersetzen, bin ich über die Möglichkeit gestolpert, auch mit einen Shellscript die Tabellen einer Datenbank zu füllen. Zwar ist mein Ziel, ohne PHP und MySQL auskommen zu können, aber so ganz werde ich das zunächst nicht schaffen. Daher habe ich mich damit befasst, wie ich in einem Script überhaupt an eine Datenbank rankomme und Werte einfügen kann.

Das nachfolgende sehr simple Beispiel zeigt den entsprechenden Scriptcode:

#!/bin/bash

# Variablen mit Werten füllen
feldwert1="test mit variable”
feldwert2="zweite variable”

# INSERT-Statement absetzen und Daten einfügen
mysql -u xxx -h localhost –password="xxx” testcenter -e “insert into insert_test (feld1, feld2, erfasst) values (‘$feldwert1’, ‘$feldwert2’, now());”

INSERT-Statement zum Befüllen einer MySQL-Tabelle - einfach.

Das INSERT-Statement werde ich nicht weiter erklären, denn ich denke, dass es dem interessierten Leser deutlich ist, was da passiert.

Natürlich geht die Verbindungsaufnahme zur Datenbank auch etwas eleganter. Besonders dann, wenn vielleicht INSERT-Statement in einer Schleife ablaufen oder andere Tabellen im Laufe des Scripts angesprochen werden sollen, macht es Sinn die Bestandteile zur Verbindungsaufnahme ebenfalls in Variablen zu legen.

Das könnte dann wie folgt ausssehen:

#!/bin/bash

# Verbindung zur Datenbank aufnehmen
user="xxx”
server="localhost”
pw="xxx”
db="testcenter”
tabelle="insert_test”

# Variablen mit Werten füllen
feldwert1="test mit variable”
feldwert2="zweite variable”

# INSERT-Statement absetzen und Daten einfügen
mysql -u $user -h $server –password="$pw” $db -e “insert into $tabelle (feld1, feld2, erfasst) values (‘$feldwert1’, ‘$feldwert2’, now());”

INSERT-Statement zum Befüllen einer MySQL-Tabelle - elegant.