2017-09-17 8 views
0

Ich versuche, in meine Datenbank einzufügen, und das einzige Problem, das ich finden kann, ist die Sql nicht irgendwie korrekt. Ich habe versucht, die Fehler zu suchen, aber sie sind verwirrt, was sie sind.PDO Einfügen unbekannter SQL-Fehler

$pdo = new PDO("mysql:host=$dbhost;dbname=$dbvideos;", $dbusername, $dbpassword); 
$sql = "INSERT INTO Video ('Channel ID', 'Name', 'VideoDescription', 'VideoLocation') VALUES (:chanID, :vidName, :vDesc, :vLoc)"; 
$stmt = $pdo->prepare($sql); 
$stmt->execute(array(":chanID"=>$_POST['selectedChannel'], ":vidName"=>$_POST['videoName'], ":vDesc"=>$_POST['viddesc'], ":vLoc"=> $VideoLocation)); 
print_r($stmt->errorInfo()); 

mit Fehlerausgang:

Array ([0] => 42000 [1] => 1064 [2] => 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 'ID, Name, VideoDescription,VideoLocation) VALUES ('1', 'Testing Video', 'This is' at line 1) 

ich die Variablen vorbestellt geprüft (Typen entsprechen Datenbank, und sie existieren und bei der Validierung auf der vorherigen Seite). Die Verbindung funktioniert einwandfrei. Also ist SQL der einzige Fehler, den ich finden kann.

+2

Namen in Back-Ticks (') nicht in Anführungszeichen (') einschließen? Es ist auch keine gute Idee, Leerzeichen in Spaltennamen zu haben. Verwenden Sie stattdessen einen Unterstrich? –

Antwort

1

Ich verstehe, keinen Platz in Namen zu haben - das ist mir in den Sinn gekommen (ich bin in der Regel darüber, auch beim Speichern von Dateien). Einige, wie das Entfernen des Platzes und das Entfernen von Anführungszeichen es funktionierte. (Ich habe ursprünglich 'zitiert' verwendet, weil ich gesehen habe, dass einige Leute es benutzen, also würde ich das Problem lösen).

Danke Ryan Vincent.