2016-05-20 3 views
1

Ich erhalte diese Fehlermeldung:können versuchen, nicht ohne Fang verwenden

Syntax error or access violation: 1064 You have an error in your SQL syntax;

Diese PDOStatement->execute()#1 {main} und nicht ohne Fang versuchen Kann verwenden oder schließlich

Mein Code ist:

$f_u_id = $_SESSION['memberID']; 
try 
    { 
    $insert_file_info = $db->prepare("INSERT INTO uploads ('file_id','owner_id') VALUES ($newfilename, $f_u_id)"); 
    $insert_file_info->execute(); 
    }catch(PDOException $ee) 
    { 
    $error[] = $ee->getMessage(); 
    } 
+0

Feld ohne Apostroph sein sollte. – Yash

+0

also statt dessen: $ insert_file_info = $ db-> prepare ("INSERT INTO uploads ('file_id', 'owner_id') VALUES ($ newfilename, $ f_u_id)"); Ich sollte das tun? $ insert_file_info = $ db-> prepare ("INSERT INTO uploads (file_id, owner_id) VALUES ($ newfilename, $ f_u_id)"); –

+0

Ja, Sie müssen Anführungszeichen aus Feldern entfernen, da dies nur Spaltennamen und keine Werte sind. –

Antwort

0

Sie müssen Anführungszeichen aus Feldern entfernen, da dies nur der Spaltenname ist und Zitate in Werte eingeben.

Also, versuchen Sie diese Abfrage

INSERT INTO uploads (file_id,owner_id) VALUES ("+ $newfilename +", "+ $f_u_id +") 

Hinweis: Sie können refer this für einen bestimmten Zweck zu lernen.

0

Verwenden Single 'in Werte

INSERT INTO Uploads (file_id, owner_id) VALUES (' $ newfilename‘, '$ f_u_id')

+0

INSERT INTO Uploads (Datei-ID, Besitzer-ID) VALUES ('{$ Newfilename}', '{$ f_u_id}') –

+0

@Raju Dudhrejiya, überhaupt keinen Unterschied. –

0

Versuchen Sie, diese Art und Weise

$insert_file_info = $db->prepare("INSERT INTO uploads ('file_id','owner_id') VALUES ('"+$newfilename+"', "+$f_u_id+")"); 
1
  • Felder sollten nicht in Anführungszeichen gesetzt oder mit `` zitiert werden.
  • Sie sollten Ihre Strings mit '' umwickeln. Viel besser - Platzhalter für Daten zu verwenden.

So, hier ist der Code:

$insert_file_info = $db->prepare("INSERT INTO uploads (file_id, owner_id) VALUES (?, ?)"); 
$insert_file_info->execute(array($newfilename, $f_u_id)); 
+0

seltsam, Code-Markup funktioniert nicht nach Aufzählungszeichen :( –

Verwandte Themen