2016-04-25 25 views
-3

Ich erhalte diesen Fehler jedes Mal, wenn ich versuche, eine Tabelle in meiner SQL-Datenbank zu erstellen:mysql 1064 Fehler SYNTAX ERROR

Fehler bei Abfrage (1064): Syntaxfehler in der Nähe von ‚CREATE TABLE IF NOT users (id int VORHANDEN (10) NOT NULL AUTO_INCREMENT, `‘ in Zeile 2

könnte ich etwas Hilfe mit diesem

use luke_f_db 
CREATE TABLE IF NOT EXISTS `users` (
`id` int(10) NOT NULL AUTO_INCREMENT, 
`username` varchar(50) NOT NULL, 
`email` varchar(50) NOT NULL, 
`password` varchar(50) NOT NULL, 
`trn_date` datetime NOT NULL, 
PRIMARY KEY (`id`) 
); 
+0

'luke_f_db' verwenden? 'mysqli_select_db()' oder ausreichend? –

+3

Wirf ein Semikolon nach 'USE' (oder mache das außerhalb der Abfrage, am besten in der Verbindungsanweisung). – Quassnoi

+0

50 Zeichen reichen für einige E-Mail-Adressen nicht aus. Verwenden Sie 'VARCHAR (255)' für die meisten Felder, es sei denn, Sie haben einen zwingenden Grund, dies nicht zu tun. Die Speicherkosten sind normalerweise Null. – tadman

Antwort

1

Es ist ein Fehler mit Ihrem use Befehl hinzufügen ein;?. hinter der ersten Zeile oder einfach nur überprüfen, ob die Datenbank existiert und dein Konto hat Zugriff darauf.

Der CREATE-Code funktionierte gut für mich.

1

Sie könnten nur einen Befehl pro Abfrage ** ausführen. Mit dem Befehlszeilen-Client mySQL können Sie mehrere Befehle mit teilen; aber läuft sie immer noch sequentiell.

Entfernen Sie die use luke_f_db Linie. Die zu verwendende Datenbank sollte innerhalb des Verbindungsbefehls ausgewählt werden. Siehe http://www.w3schools.com/php/func_mysqli_connect.asp:

$con = mysqli_connect("localhost","my_user","my_password","my_db"); 

Der Name der Datenbank das letzte Argument ist zu mysqli_connect.

Die gleichen Informationen werden in der offiziellen PHP-Dokumentation: http://php.net/manual/en/mysqli.construct.php

** Einige mySQL-Client-Implementierungen auch mehrere Befehle in einem Aufruf ermöglichen, aber man sollte es vermeiden. Die Verwendung dieser Funktion in einem Skript ist nicht auf andere Datenbanken übertragbar und Sie werden nie wissen, welcher Ihrer Befehle einen Fehler ausgelöst hat.

+0

Bitte, wenn immer möglich, Link zur offiziellen Dokumentation für PHP. – tadman

+0

Es ist nicht so offensichtlich in diesem Fall: http://php.net/manual/en/function.mysqli-connect.php und http://php.net/manual/en/mysqli.construct.php – Sebastian

+0

Das ist die deutsche Version soweit ich das beurteilen kann. – tadman

Verwandte Themen