ASCIi: Problem mit MySQL

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

  1. 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

  2. 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

    1. »» $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

      1. Hat sich erledigt...
        Es funktioniert
        ASCII