daniel putz: variable

hallo,

ich möchte daten aus den variablen in meine db schreiben. nun habe ich folgende anweisung:

$anfrage="INSERT INTO buch VALUES('$id', '$name', '$titel', '$preis')";

jedoch schreibt er mir nur leere daten in die db.
ich weiß, dass die variablen anders beschrieben werden müssen (irgendwie $_script???id), jedoch nicht wie! kann mir das jemand sagen?!

danke,
daniel

  1. Moin Daniel,

    $anfrage="INSERT INTO buch VALUES('$id', '$name', '$titel', '$preis')";

    Wo sind den die Spaltennamen?

    $anfrage="INSERT INTO buch ( spalte_id, spalte_name ) VALUES (
    '$id', '$name',......)

    regds
    Mike

    1. mahlzeit mike,

      $anfrage="INSERT INTO buch ( spalte_id, spalte_name ) VALUES (
      '$id', '$name',......)

      mysql unterstützt eine eingabe ohne spaltenangaben. daranl liegt es nicht.
      die variablen müssen anders benannt werden, soweit weiß ich es schon, allerdings weiß ich nicht wie...! und ich konnte das bisher auch niergendwo finden!

      danke für deine bemühungen,
      daniel

  2. Hello Daniel,

    ich möchte daten aus den variablen in meine db schreiben. nun habe ich folgende anweisung:

    $anfrage="INSERT INTO buch VALUES('$id', '$name', '$titel', '$preis')";

    Du solltest ganz langsam anfangen.

    Steht etwas drin in den Variablen?

    echo "id: $id <br />";
    echo "name: $name <br />";
    echo "titel: $titel <br />";
    echo "preis: $preis <br />";

    $sql = "INSERT INTO buch VALUES('$id', '$name', '$titel', '$preis')";

    echo "SQL: $sql <br />";

    das funktioniert so nur, wenn die Tabelle buch in der gleichen Reihen-

    folge die Spalten, passend zu id, name, titel preis hat. sonst musst

    Du den Spalten die Werte explizit zuweisen.

    $sql2  =  "INSERT INTO buch set ";
    $sql2 .=  "id = '$id',";
    $sql2 .=  "name = '".mysql_escape_string($name)."',";
    $sql2 .=  "titel = '".mysql_escape_string($titel)."',";
    $sql2 .=  "preis = '$preis')";

    echo "SQL2: $sql2 <br />";

    Verbindung zum DB-Server herstellen

    $con = mysql_connect( ......) or die("keine Verbindung zum DB-Server");
    $db = mysql_select_db($dbname,$con) or die ("kann Datenbank nicht öffnen");

    und das Query:

    $res = mysql_query($sql2,$con);

    if ($res)
    {
      echo "ok";
    }

    Auch Preis und ID sollten im zweiten Beispiel auf unerlaubte Werte geprüft sein, bevor Du sie an die DB übergibst.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen