Problem mit MySQL
ASCIi
- datenbank
Moin
Folgender Syntax:
<?php
$var1 = "Name";
$var2 = "Email";
$var3 = "bla_bla";
$connect_db = mysql_connect ("localhost", "root", "passwort")
or die("Keine Verbindung zur Datenbank: ". mysql_error());
$create_db = mysql_query ("CREATE DATABASE IF NOT EXISTS testdatenbank")
or die ("<b>Konnte Datenbank nicht erstellen:</b> " . mysql_error());
$select_db = mysql_select_db("testdatenbank",$connect_db)
or die("Datenbank-Auswahl ist gescheitert: " . mysql_error());
$create_tbl = mysql_query ("CREATE TABLE IF NOT EXISTS testtabelle (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name TEXT NOT NULL,
email TEXT NOT NULL,
beschreibung TEXT NOT NULL)")
or die ("<b>Konnte Tabelle nicht erstellen:</b> " . mysql_error());
$add_dats = mysql_query ("INSERT INTO testtabelle (name, email, beschreibung) VALUES ($var1, $var2, $var3)")
or die ("<b>Daten konnten nicht eingefügt werden:</b> " . mysql_error());
?>
Bis zu der Erstellung der Tabelle klappt alles.
Nur wenn ich jetzt die Daten reinschreiben will, bekomme ich folgende Fehlermeldung:
Daten konnten nicht eingefügt werden: Unknown column 'bla_bla' in 'field list'
Liegt das daran, das 'id' fehlt? Aber 'id' ist als Primärschlüssel festgelegt und müsste doch eigentlich automatisch generiert werden...
Was ist hier dran falsch?
Thank You!
ASCII
Hallo,
$add_dats = mysql_query ("INSERT INTO testtabelle (name, email, beschreibung) VALUES ($var1, $var2, $var3)")
or die ("<b>Daten konnten nicht eingefügt werden:</b> " . mysql_error());
?>
Bitte gewöhne Dich an einen kontrollierbaren Programmierstil. Strings, die später als Anweisungen interpretiert werden sollen, zur Fehlersuche immer testweise ausgeben.
$SQLString = "INSERT INTO testtabelle (name, email, beschreibung) VALUES ($var1, $var2, $var3)";
echo $SQLString;
$add_dats = mysql_query(SQLString) or die ("<b>Daten konnten nicht eingefügt werden:</b> " . mysql_error());
Daten konnten nicht eingefügt werden: Unknown column 'bla_bla' in 'field list'
Offensichtlich steht im Query:
INSERT INTO testtabelle (name, email, beschreibung) VALUES (bla_bla, blu_blu, bli_bli)
Es sollte aber:
INSERT INTO testtabelle (name, email, beschreibung) VALUES ('bla_bla', 'blu_blu', 'bli_bli')
drin stehen.
viele Grüße
Axel
Hallo,
> <?php
> $var1 = "Name";
> $var2 = "Email";
> $var3 = "bla_bla";
> // [...]
> $add_dats = mysql_query ("INSERT INTO testtabelle (name, email, beschreibung) VALUES ($var1, $var2, $var3)")
$var1, $var2 und $var3 sind Strings - sie müssen also in Anführungszeichen stehen.
Grüße aus Nürnberg
Tobias
»» $var1, $var2 und $var3 sind Strings - sie müssen also in Anführungszeichen stehen.
Da krieg ich den Fehler:
Parse error: syntax error, unexpected T_VARIABLE in C:\apachefriends\xampp\htdocs\database\create.php on line 23
ASCII
Hat sich erledigt...
Es funktioniert
ASCII