Wie behebe ich diesen Fehler ?

Hi.

Hier ist der Fehlercode : Bundesliga Saison 2012/2013

Hier mein Code

[CODE]<?php
error_reporting(E_ALL);
$db_link = @mysql_connect(MYSQL_Server, MYSQL_Benutzername, MYSQL_PW);
mysql_select_db(MYSQL_Datenbank);

$name= $_POST[‚name‘];
$mail= $_POST[‚mail‘];
$text= $_POST[‚text‘];

$sql = „INSERT Tabelle (name,mail,text) VALUES (‚$name‘,‚$mail‘,‚$text‘)“;

if ((„“ == $name) OR („“== $mail) OR(„“== $text)) {
echo „Fehler: Eintrag unvollständig.“;
} else {

echo „Ihr Eintrag wurde hinzugefügt“;
}
echo ‚
Zurück zum Gästebuch.‘;

$result = mysql_query($sql) OR
die(„Query:

“.$sql.„
\n“.
"Antwoertchen: ".mysql_error());
?>[/CODE]

Wie behebe ich den Fehler ?

Da ich Anfänger bin, bitte einfach beschreiben…

[TABLE=„width: 500“]
[TR]
[TD]Formular
[/TD]
[TD]—>
[/TD]
[TD]Tabelle in Datenbank
[/TD]
[/TR]
[TR]
[TD]name
[/TD]
[TD]—>
[/TD]
[TD]name
[/TD]
[/TR]
[TR]
[TD]mail
[/TD]
[TD]—>
[/TD]
[TD]mail
[/TD]
[/TR]
[TR]
[TD]text
[/TD]
[TD]—>
[/TD]
[TD]text[/TD]
[/TR]
[/TABLE]

Hey,
Die Fehlermeldung sagt ja das keine Verbindung zur Mysql-Datenbank aufgebaut werden kann. Also prüfe am besten nochmal deine Daten.

Ansonsten sieht dein sql etwas falsch aus:
MySQL :: MySQL 5.5 Reference Manual :: 13.2.5 INSERT Syntax

Hi.

Wenn ich jetzt z.B. diesen Syntax nehmen :

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE] [INTO] [I]tbl_name[/I] [([I]col_name[/I],...)] SELECT ... [ ON DUPLICATE KEY UPDATE [I]col_name[/I]=[I]expr[/I] [, [I]col_name[/I]=[I]expr[/I]] ... ]

Was muss ich dann noch einfügen ?

INSERT INTO Tabelle (name,mail,text) VALUES (‚$name‘,‚$mail‘,‚$text‘)

Du hast nur das INTO vergessen.

Du musst die von dir im mysql_connect() definierten Konstanten mit den Benutzerdaten füllen. Musst also vor dieser Funktion ergänzen:

[php]define(MYSQL_Server, „server“);
define(MYSQL_Benutzername, „benutzername“);
define(MYSQL_PW, „passwort“);
define(MYSQL_Datenbank, „datenbankname“);[/php]

Die in meinem Beispiel hier genannten Wörter server, benutzername, datenbankname und passwort musst Du gegen die dir vorliegenden Zugangsdaten zu deiner MySQL-Datenbank ersetzen.

Hi.

Jetzt ist der Fehlercode kürzer ( http://www.info-bundesliga.de/eintragen.php )

Hier mein neuer Code :

[CODE]<?php

mysql_connect(
define(MYSQL_Server, „Server“);
define(MYSQL_Benutzername, „Benutzername“);
define(MYSQL_PW, „PW“);
define(MYSQL_Datenbank, „Datenbankname“):wink:

$name= $_POST[‚name‘];
$mail= $_POST[‚mail‘];
$text= $_POST[‚text‘];

$sql = „INSERT INTO gaestebuch(name, mail, text) VALUES (‚name‘,‚mail‘,‚text‘)“;

if ((„“ == $name) OR („“== $mail) OR(„“== $text)) {
echo „Fehler: Eintrag unvollständig.“;
} else {

echo „Ihr Eintrag wurde hinzugefügt“;
}
echo ‚
Zurück zum Gästebuch.‘;

$result = mysql_query($sql) OR
die(„Query:

“.$sql.„
\n“.
"Antwoertchen: ".mysql_error());
?>
[/CODE]

Was ist jetzt denn schon wieder der Fehler ?

Danke im Vorraus

Du hast threadi falsch verstanden.
Das define muss vor dem mysql connect sein oder du lässt einfach die platzhalter weg und schriebst direkt deine daten dort rein. also:

$db_link = @mysql_connect(„localhost“, „user“, "passwort); mysql_select_db(„datenbankname“);

Hi.

Wie sähe denn dann die Methode von threadi aus ?

Danke

Hat er doch sogar mit Codebeispiel geschrieben, da musst du doch nur deine Daten einsetzen. Und dann folgt dein Code, den du anfangs gepostet hast.
Ein wenig Eigeninitiative darf auch sein…

Jain. Du beschreibst eine andere, aber auch richtige Variante.

Dir ist offenbar nicht bewusst, dass Du hier Datenbankzugangsdaten eintragen musst. Die können wir dir nicht sagen, wir können deine Zugangsdaten zum Glück nicht mal erraten denn das wäre ein Sicherheitsrisiko. Du musst die für Dich gültigen Zugangsdaten selbst wissen. Weißt Du sie nicht, frag deinen Webhoster. Sagt dir dein Webhoster, dass Du keine MySQL-Datenbank und somit keine Datenbankzugangsdaten hast, dann wirst Du entweder den Webhoster wechseln müssen oder deine Idee aufgeben.

Dass ich da meine Daten eintragen muss, dass weiß ich.

Dass du vorsichtig sein musst, wenn eine Spalte deiner Tabelle »name« heißt, hast du auf dem Schirm? MySql wird das immer für einen Operator (oder was ähnliches halten), es sei denn du setzt es in accents graves: »name«:

INSERT INTO Tabelle ([B]`name`[/B], mail, text) VALUES ('$name','$mail','$text')

Nur um der Fehlermeldung in deinem überübernächsten Posting vorwegzugreifen … :wink:

Edit: habe gerade festgestellt, dass »NAME« KEIN reserviertes Wort ist, demzufolge kann es auch ohne »Anführungszeichen« verwendet werden. Meiner Erinnerung nach, knallt NAME ohne `` aber trotzdem. Weiteres hier: http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords-5-1.html

Die Akzente heißen im IT-Kontext auch Backticks.

Um noch ein paar Posts (oder eher Threads) vorzugreifen: SQL-Injection, mysql-Erweiterung ist veraltet und wird entfernt.