Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

mySQL + PHP





Frage

<? $verbindung = @mysql_connect("localhost","lala","lala"); if (!$verbindung) { echo "Keine Verbindung möglich!\n"; } $name = "quan"; $email = "bla@bla.de"; $text = "bla"; $eintrag = "INSERT INTO guestbook (name, email, text) VALUES ('$name', '$email', '$text')"; $eintragen = mysql_query($eintrag); ?> was stimmt da nicht ? er schreibt einfach gar nichts in die Tabelle rein... ich hab noch ne Spalte "id", die auf auto_increment steht, wie funktioniert das ? Primärschlüssel Index Unique Volltext was bedeutet das alles?

Antwort 1 von MixMax

also wegen autoinkrement um eine tabelle mit einer automatisch hochzählenden Spalte anzulegen mußt du folgendes eingeben :
create table XYZ (id int not null auto_increment primary key);


aus folgenden grund :
  • int = Zahlenwert (logisch)
  • not null = der wert darf zwar die Zahl 0 haben (hat sie nie) aber es darf kein NULL-Wert sein denn zu einem NULL-Wert könnte man nichts hinzuaddieren
  • auto_inkrement klar der inhalt wird automatisch immer um eins erhöht
  • primary key es sollte nicht möglich sein das eine Zahl doppelt vorkommt

    (zum letzten punkt, da hat SN noch probleme, den der die tabelle angelegt hat sollte man würgen)

    um festzustellen warum er nix einträgt solltest du folgendes nochmnal prüfen

  • existiert eine tabelle guestbook
  • lasse dir mit describe guestbook;
    mal anzeigen ob die spalten name, email und text auch existieren
  • lasse dir mit
    echo mysql_error();
    mal anzeigen ob er in der zeile nach der abfrage einen Error hat
  • lasse dir mal den fertigen $eintrag mit
    echo $eintrag;
    anzeigen, evtl sind ja hochkommas ( ' ) in einer der variablen.

  • Antwort 2 von MixMax

    mir fällt da was auf - du wirst vermutlich die Fehlermeldung bekommen "no database selected"

    am besten du bestimmst noch nach mysql_connect() mit einer query welche datenbank du benutzt, das hast du glatt überschlagen wegen der Struktur :
    Server > Datenbanken > Tabellen > Spalten & Zeilen

    mit
    mysql_query("use testdb;");

    wäre es demnach behoben.

    Antwort 3 von semi

    Oder lieber so:
    
    $verbindung = @mysql_connect("localhost","lala","lala");
    
    if (!$verbindung) {
      echo "Keine Verbindung möglich!\n";
      echo "Ursache: " . mysql_error();
      exit(); 
    }
    mysql_select_db("DATENBANKNAME", $verbindung) or die(mysql_error());
    ...
    ...
    


    Gruss,
    Michael

    Ich möchte kostenlos eine Frage an die Mitglieder stellen:


    Ähnliche Themen:


    Suche in allen vorhandenen Beiträgen: