Veröffentlicht 15. August 200223 j Ich will Werte in eine DB eintragen. Dazu gibts ein Formular. Da wird der Wert eingetragen, der SQL-String generiert und die Abfrage abgeschickt. So weit, so gut. irgendwo ist da der Wurm drin: if($action=="Hinzufügen") { $SQL_setRegion="INSERT INTO Regionen (Region) VALUES ('$Region')"; echo "SQL: $SQL_setRegion<p>"; $setRegion=mysql_query(SQL_setRegion,$Verbindung); if($setRegion) { echo "Die Region $Region wurde in die Datenbank eingefügt."; } else echo "Die Region $Region konnte leider nicht in die Datenbank eingefügt werden."; } [/PHP] Aus welchem Grund auch immer geht der Rechner in den Else-Zweig, obwohl die Anweisung richtig ist, was ein manuelles Eingeben (bzw. Kopieren-Einfügen) des generierten Strings beweist.
15. August 200223 j Hallo mach mal nach dem Query nen echo mysql_error(); und schau ob das query fehl schlaegt. Michael
15. August 200223 j Autor 1. ich habe jetzt rausbekommen, wo der Fehler liegt: Ich bekomme mit dem Befehl mysql_select_db() keinen Rückgabewert. Genaugenommen schient PHP den Befehl nicht auszuführen. 2. Der Befehl mysql_query() führt zu dem gleichen Ergebnis wie mysql_db_query(). Außerdem ist mysql_db_query() deprecated erklärt worden (soll nicht weiter genutzt werden). siehe: http://www.php.net/manual/en/function.mysql-db-query.php und http://www.php.net/manual/en/function.mysql-query.php
15. August 200223 j hallo! mysql_query() ist schon richtig. mysql_db_query ist veraltet (seit PHP 4.0.6) und sollte nicht mehr verwendet werden.
15. August 200223 j Schätze mal, der Fehler liegt in dieser Zeile: $setRegion=mysql_query(SQL_setRegion,$Verbindung) Ohne $-Zeichen vor der Variablen SQL_setRegion wird ja die Query nicht richtig übergeben und es kann gar kein DB-Eintrag erfolgen ...
15. August 200223 j Autor Die Funktion mysq_query() erwartet einen SQL-String. In meinem Fall steht der in der Variablen $SQL_getRegionen. Die anderen Parameter sind optional. Das Problem habe ich gefunden (siehe Beitrag oben), ich weiss nur nicht, wie ich es beheben kann :( :confused: :(
16. August 200223 j Original geschrieben von E-T Die Funktion mysq_query() erwartet einen SQL-String. In meinem Fall steht der in der Variablen $SQL_getRegionen. Die anderen Parameter sind optional. Das Problem habe ich gefunden (siehe Beitrag oben), ich weiss nur nicht, wie ich es beheben kann :( :confused: :( Wieso? Du mußt doch einfach nur ein Dollarzeichen vor die Variable innerhalb der Funktion mysql_query setzen - damit sie als Variable erkannt wird. Der SQL-String steht ja schon in der Variable drin... Also folgendermaßen: $setRegion=mysql_query($SQL_setRegion,$Verbindung) [/PHP]
16. August 200223 j Original geschrieben von E-T Jaaaaaaa, das ist aber nicht das Problem. Achso, sorry, hatte mich verlesen... Dann weiß ich es leider auch nicht... - wenn wirklich alles richtig geschrieben ist und es die DB auch gibt... Kannst du denn mal den Code posten, in dem du die Datenbank selektierst und möglichst ein paar Zeilen außenrum? Vielleicht ist der Wurm ganz woanders...
17. August 200223 j Autor Nee, leider ist das genau diese Stelle. Wenn ich die Daten einfach in die von MySQL automatisch erstellte DB "test" kopiere und mich damit verbinde funktioniert es. Wenn ich eine selbst ertellte DB nehme dann nicht. Die von mir erstellten User dürfen sich von überall anmelden und haben die Stadardrechte (INSERT, UPDATE,...). Im Falle eines Erfolges hat die Funktion mysql_select_db() als Rückgabewert die "1" ansonsten nichts, bzw. das die() wird ausgeführt. $Selection=mysql_select_db($Name,$Verbindung) or die("schon wieder nichts"); echo $Selection;[/PHP]
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.