Problem

R

RedPapaBull

Grünschnabel
Hallo!
Ich habe ein Problem, und zwar kommt immer diese Fehlermeldung;
Parse error: syntax error, unexpected T_STRING in G:\xampp\htdocs\Mediba\includes\db\table.php on line 15.

Hier das dazugehörige Script:

<?php

include("connect.php");

$ergebnis=mysql_query("CREATE TABLE User (User_id int(5) NOT NULL PRIMARY KEY,
User_name VARCHAR(30) NOT NULL Keiner,
User_geb DATE NOT NULL '2007.06.14',
User_0rt VARCHAR(30) NOT Goerlitz,
User_medien INT(30) NOT 300));
if(!$ergebnis){
echo mysql_error();
}
else
{
echo "Tabelle erstellt";
}
mysql_close($link);
?>
 
Die Überschrift hätte man auch sinnvoller wählen können...

Code:
$ergebnis=mysql_query("CREATE TABLE User (User_id int(5) NOT NULL PRIMARY KEY,
User_name VARCHAR(30) NOT NULL Keiner,
User_geb DATE NOT NULL '2007.06.14',
User_0rt VARCHAR(30) NOT Goerlitz,
User_medien INT(30) NOT 300));

Du fasst die Query in doppelte Anführungsstriche, am Anfang, am Ende hast du vergessen die zu schließen!

Gruß
D.
 
Ich hätte jetzt gedacht, daß unter Linux ein Pfad so nicht aussehen kann und das deshalb scheitert :O

Wo hat RedPapaBull erwähnt das er das ganze unter Linux laufen hat?

Nein, die Fehlermeldung besagt, dass ein nicht erwarteter String gefunden wurde, nämlich 'Tabelle erstellt', denn erst die öffnenden Anführungszeichen schließen die Anführungszeichen der Query und mit 'Tabelle erstellt' kann der PHP-Interpreter nichts anfangen.

Gruß
D.
 
Erstmal Danke für eure Antworten.

PHP:
<?php

	include("connect.php");

	$ergebnis=mysql_query("CREATE TABLE User 	(User_id int(5) NOT NULL PRIMARY KEY,
												 User_name VARCHAR(30) NOT NULL Keiner,
											 	 User_geb DATE NOT NULL '2007-06-14',
											 	 User_0rt VARCHAR(30) NOT NULL Goerlitz,
											 	 User_medien INT(30) NOT NULL 300)");
	if(!$ergebnis){
	echo mysql_error();
	}
	else
	{
	echo "Tabelle erstellt";
	}
	mysql_close($link);
?>
Ich habe es jetzt so geändert.
Nun kommt folgendes:
Verbindung zum Server hergestellt
Datenbank "mediba" erfolgreich ausgewählt
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Keiner, User_geb DATE NOT NULL '2007-06-14', User_' at line 2

Die ersten beiden Zeilen klingen ja schon mal gut, aber dann???
 
Zuletzt bearbeitet:
Code:
check the manual that corresponds to your MySQL server version

Das mal gemacht? Würde ich dringend zu raten, deine Query ist nämlich, wie mir auch jetzt erst auffällt, ziemlicher Mist.

Tipp: such mal nach nem MySQL-Keyword 'Keiner'.

Gruß
D.
 
Ich habe jetzt die Defaultwerte entfernt.
Jetzt geht es.
Aber wie lautet denn nun die richtige syntax mit allem drum und dran. Also Defaultwerte und PrimaryKey und so???
 
Aber wie lautet denn nun die richtige syntax mit allem drum und dran. Also Defaultwerte und PrimaryKey und so???

Sag mal, hakt's etwas?

Sollen wir dir jetzt das Handbuch vorlesen?

Eigeninitiative?
 
wo kann ich denn sowas nachlesen?
Google hat mir nichts gebracht.
 
Ähm... nee, da fällt mir nichts mehr zu ein.

Gruß
D.
 
Naja,von höfflichkeit versteht hier wohl keiner was oder?
Hab mich über die schnellen antworten gefreut und dann sowas!
Das ist echt mies!
 
Danke @ MusikK.
Aber da war ich schon, und da seh ich auch durch.
Das hilf mir genauso, wie die Antwortet, bei denen ich nur zugenüllt werde.
 
Dann versteh ich dein Problem nicht. Wenn du durchsiehst, ist doch alles in Ordnung?
 
Ich meine eigentlich, dass ich da nicht durchsehe.
Sorry.
Wenn mir das jemand erklären würde, wäre nett. Weil ich immer wieder auf soetwas stoße und damit nichts anfangen kann.
 
Diese Sachen wie:
Eckige Klammern und runde Klammer, und wie man es schreiben muss bzw. was dabei zu beachten ist.
 
Die Eckigen und runden Klammern sind EBNF, dabei stehen eckige Klammern für Optionen (Parameter die nicht angegeben werden müssen aber können) und runde Klammern dienen der Gruppierung.

Gruß
D.
 
madfool war schneller, aber trotzdem:
Code:
CREATE TABLE tabellenname (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100),
  email VARCHAR(100),
  nachricht TEXT
)

Eckige Klammern sind Platzhalter, z.B. [IF NOT EXISTS], runde Klammern sind, nun, runde Klammern?!

Kleingeschriebene Namen musst du ersetzen, das übernehme ich nicht für dich, das großgeschriebene sind Parameter und die Zahlen hinter VARCHAR bedeutet, dass die Inhalte des Feldes "name" und "email" vom Typ VARCHAR ist (was das heißt findest du u.a. wenn du suchmaschinst) und eine maximale Länge von 100 Zeichen hat.

Viel Glück!!

Noch ein kostenloser Tipp: Wenn du phpMyAdmin verwendest, musst du (fast) kein mySQL lernen. Du kannst dir da alles zusammenklicken und phpMyAdmin gibt dir sogar die Abfrage in richtiger (!) Syntax aus. Klasse...
 
Zuletzt bearbeitet:

Ähnliche Themen

Mit bash mysql in Schleife abfragen

dovecot und postfix Konfiguration Problem

Mit awk ein textfile parsen und SQL daraus erzeugen.

Ubuntu X / dbus problem

Problem mit Apache2 + MySQL Server

Zurück
Oben