Eintrag in Datenbank fehlgeschlagen

Diskutiere Eintrag in Datenbank fehlgeschlagen im Web & Grafik Forum im Bereich Internet & Telekomunikation Forum; Also mein Script funktioniert mal wieder nich und ich weis nich warum ^^ ich hab nen CMS gebastelt was theoretisch Tourdaten inne Tabelle...
  • Eintrag in Datenbank fehlgeschlagen Beitrag #1
C

[C]-Sh4rP

Bekanntes Mitglied
Dabei seit
24.11.2007
Beiträge
87
Reaktionspunkte
0
Also mein Script funktioniert mal wieder nich und ich weis nich warum ^^

ich hab nen CMS gebastelt was theoretisch Tourdaten inne Tabelle eintragen soll... Jetzt hab ich allerding keine Ahnung warums das nicht macht. Dachte erst es liegt an meinen inputs aber wenn ich direkt auf das Postscript geh machts auch keine Einträge. Dann hab ich fehlermeldungen eingefügt.

PHP:
<?php
include("db_connect.php") or die ("Verbindung zum Server nicht Möglich");

$date = $_POST["date"];
$where = $_POST["where"];
$description = $_POST["description"];

$eintrag = "INSERT INTO tour (date, where, description) VALUES ('$date', '$where', '$description')";
$eintragen = mysql_query($eintrag) or die ("Daten konnten nicht eingetragen werden");
?>
Die letztere Fehlermeldung "Daten konnten nicht eingetragen werden" wird mir jetzt immer angezeigt und ich weis einfach nich warum. Hab das Script eigentlich von nem andern das ich für mein cms verwende kopiert und das andere funktioniert.
Hab jetzt schon drei mal meine Semikolons kontrolliert und das script mit funktionierenden verglichen aber komm einfach nich auf das Problem obwohls bestimmt iwas total einfaches is... :confused:

Hoffe jemand sieht den Fehler ^^


//edit: Kennt vielleicht irgendjemand nen IRC wo man sowas fragen kann ?
 
  • Eintrag in Datenbank fehlgeschlagen Beitrag #2
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
where ist ein SQL-Schlüsselwort und muss bei einer Verwendung als Name in einfache Anführungszeichen gesetzt - oder besser noch ganz vermieden - werden.
Übrigens sollte mysql vermutlich eine Funktion besitzen, die eine Beschreibung des letzten aufgetretenen Fehlers ausgibt.
 
  • Eintrag in Datenbank fehlgeschlagen Beitrag #3
futtlui

futtlui

Bekanntes Mitglied
Dabei seit
21.01.2003
Beiträge
10.439
Reaktionspunkte
2
notfalls in phpmyadmin als SQL (mit Werten anstelle der Variablen) eingeben - da kriegt man garantiert eine SQL-Fehlermeldung.
Aber wahrscheinlich liegt es eh wie schon vermutet an dem where als Feldname. Das ist bei mysql nämlich ein reserviertes Wort. Nimm doch lieber "ort" oder "place" oder so.
 
  • Eintrag in Datenbank fehlgeschlagen Beitrag #4
C

[C]-Sh4rP

Bekanntes Mitglied
Dabei seit
24.11.2007
Beiträge
87
Reaktionspunkte
0
Das mit mit den Schlüsselwortern hab ich mir auch schon gedacht aber hab where und date auch schon umbenannt bzw. ganz weg gelassen. Habs jetzt zur Kontrolle nochmal gemacht aber geht trotzdem nich. Über phpmyadmin gehts einwandfrei. Jemand ne Idee wo der Fehler noch liegen kann ? Bzw wie ich mir ne genauere Fehlermeldung ausgeben lassen kann ?
 
  • Eintrag in Datenbank fehlgeschlagen Beitrag #5
C

[C]-Sh4rP

Bekanntes Mitglied
Dabei seit
24.11.2007
Beiträge
87
Reaktionspunkte
0
2min zu spät zum ändern -.-

//EDIT: Ich hab jetzt bei phpmyadmin übers gui paar werte eingegeben und den php-code dens dann ausgegeben hat genau so mit den werten in mein script eingefügt und es ausgeführt - hat auch nicht funktioniert. Jetzt bin ich wirklich Ratlos :confused:
 
  • Eintrag in Datenbank fehlgeschlagen Beitrag #6
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Dann passt vermutlich was mit der Verbindung zur DB nicht.
Es ist übrigens ziemlich unsauber, meiner Ansicht nach, die Verbindung über ein Include aufzubauen, ohne dafür eine Funktion zu verwenden, die eine Ressource für die Verbindung zurückgibt. Auch die Anfrage-Funktion erhält keine Variable für die Verbindung, sondern nimmt die zuletzt geöffnete. Da findet keinerlei Prüfung in deinem Code statt, ob die Verbindung überhaupt steht, usw. So sind Fehler schon vorprogrammiert.
 
  • Eintrag in Datenbank fehlgeschlagen Beitrag #7
S

Stefan

Guest
[C]-Sh4rP;2235719 schrieb:
Bzw wie ich mir ne genauere Fehlermeldung ausgeben lassen kann ?
Ich würd mal mysql_error() vorschlagen ;)

Zugriff auf die PHP Dokumentation hast du doch auch, oder? ;)

Dann passt vermutlich was mit der Verbindung zur DB nicht.
Es ist übrigens ziemlich unsauber, meiner Ansicht nach, die Verbindung über ein Include aufzubauen, ohne dafür eine Funktion zu verwenden, die eine Ressource für die Verbindung zurückgibt.
Noch schlimmer: Das versuchte Abfangen des Fehlers, wenn keine Verbindung aufgebaut werden kann, funktioniert nicht. Du wirst die Fehlermeldung Verbindung zum Server nicht Möglich nur erhalten, wenn PHP die angegebene PHP-Datei nicht finden/einbinden kann - und dann ist die Fehlermeldung auch irreführend.

Freundliche Grüße

Stefan
 
  • Eintrag in Datenbank fehlgeschlagen Beitrag #8
futtlui

futtlui

Bekanntes Mitglied
Dabei seit
21.01.2003
Beiträge
10.439
Reaktionspunkte
2
include("db_connect.php") wird eben auch in unzähligen Tutorials in der Form verwendet und als die coole Variante für DB Verbindung dargestellt...
 
  • Eintrag in Datenbank fehlgeschlagen Beitrag #9
C

[C]-Sh4rP

Bekanntes Mitglied
Dabei seit
24.11.2007
Beiträge
87
Reaktionspunkte
0
Naja ich verwende das so weil ichs halt ziemlich einfach find...
@cmddegi: ich weis jetzt nich genau was du mir da geschrieben hast ^^ Ich glaube verstanden zu haben, dass du mir sagen willst dass ich nicht weis ob die verbindung steht weil der fehler ja nur kommt wenn die Datei nicht gefunden wird. Allerdings hab ich in der db_connect auch fehlermeldungen definiert (die am anfang auch gekommen sind). Außerdem funktioniert meine andere post datei ohne probleme obwohl ich die gleiche db_connect verwende.
Wenn mir jemand ne bessere Lösung zeigt hab ich natürlich auch nichts dagegen.

@StGaensler: Das gleiche. Und ja - sie steht mir zur Verfügung...

@futtlui: Also dass die Variante besonders cool sei hab ich bis jetzt noch nirgens gelesen - Ich hab überhaupt noch nich viel gute tuts für php gefunden aber wie oben gesagt - ich finds ziemlich einfach da mans überall verwenden kann. Kannst mir gerne ne andere Lösung vorschlagen =)

@all: Hab jetzt überall die errormeldung eingefügt so wies da stand und bekomm jetzt nur en paar doppelpunkte. Hab ich jetzt den befehl falsch eingegeben oder liegts an meiner tabelle ?
 
  • Eintrag in Datenbank fehlgeschlagen Beitrag #10
C

[C]-Sh4rP

Bekanntes Mitglied
Dabei seit
24.11.2007
Beiträge
87
Reaktionspunkte
0
ok also ich sag jetzt erstmal danke aber ihr müsst mir das erklärn...

Hab die db_connect jetzt nich mit include geholt sondern den Code direkt in meine post-datei eingetragen und es geht. Aber ich hab keine Ahnung was das für einen Unterschied machen soll :confused:
 
  • Eintrag in Datenbank fehlgeschlagen Beitrag #11
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Wär sicher hilfreich, den kompletten Code mal zu sehen ... ;)
 
  • Eintrag in Datenbank fehlgeschlagen Beitrag #12
C

[C]-Sh4rP

Bekanntes Mitglied
Dabei seit
24.11.2007
Beiträge
87
Reaktionspunkte
0
hehe ok weil dus bist ^^

vorher:
db_connect.php
PHP:
<?php
mysql_connect("localhost", "root", "") or die ("Verbindung zum Server nicht möglich. Bitte den Administrator benachrichtigen.");
mysql_select_db("solow") or die ("Datenbank nicht gefunden. Bitte den Administrator benachrichtigen.");
?>
post_tour.php
PHP:
<?php
include("db_connect.php");

$datum = $_POST["datum"];
$place = $_POST["place"];
$description = $_POST["description"];

$eintrag = "INSERT INTO tour (datum, place, description) VALUES ('$datum', '$place', '$description')";
$eintragen = mysql_query($eintrag) or die ("Daten konnten nicht eingetragen werden");
?>
nacher:
post_tour.php
PHP:
<?php
mysql_connect("localhost", "root", "") or die ("Verbindung zum Server nicht möglich. Bitte den Administrator benachrichtigen.");
mysql_select_db("solow") or die ("Datenbank nicht gefunden. Bitte den Administrator benachrichtigen.");

$datum = $_POST["datum"];
$place = $_POST["place"];
$description = $_POST["description"];

$eintrag = "INSERT INTO tour (datum, place, description) VALUES ('$datum', '$place', '$description')";
$eintragen = mysql_query($eintrag) or die ("Daten konnten nicht eingetragen werden");
?>

EDIT: Das was mir richtig zu schaffen macht is, dass es mit ner anderen post-datei gefunzt hat...
 
Thema:

Eintrag in Datenbank fehlgeschlagen

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.173
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben