2013-09-22 100 views
-2

此語句中的語法錯誤在哪裏?我沒有得到它,在這種情況下,我可以使用「?bind param方法」嗎?我使用的PDO語法錯誤mysql

$stmt = $dbh->prepare("INSERT INTO epinfo WHERE TVShowTitle=? (Season, Episode, SDLink, HDLink, DlSDLink, DlHDLink) VALUES (?, ?, ?, ?, ?, ?)"); 
$stmt->bindParam(1, $_POST[tvshow]); 
$stmt->bindParam(2, $_POST[season]); 
$stmt->bindParam(3, $_POST[episode]); 
$stmt->bindParam(4, $_POST[sdlink]); 
$stmt->bindParam(5, $_POST[hdlink]); 
$stmt->bindParam(6, $_POST[dlsdlink]); 
$stmt->bindParam(7, $_POST[dlhdlink]); 
$stmt->execute(); 

Error message: 

SQLSTATE[42000]: Syntax error or access violation: 1064 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 'WHERE TVShowTitle='Breaking Bad' (Season, Episode, SDLink, HDLink, DlSDLink, DlH' at line 1 
+2

是否要更新現有記錄? –

+1

你的where子句沒有意義。您可能希望更新而不是INSERT –

+0

在末尾放置「where」子句。查看MySQL語法來完成此操作。 – Daniel

回答

1

標準INSERT語法沒有WHERE條款。我想你想要UPDATE你現有的記錄。

UPDATE epinfo 
SET Season = ?, 
    Episode = ?, 
    SDLink = ?, 
    HDLink = ?, 
    DlSDLink = ?, 
    DlHDLink = ? 
WHERE TVShowTitle=? 
1
INSERT INTO epinfo (TVShowTitle, Season, Episode, SDLink, HDLink, DlSDLink, DlHDLink) VALUES (?, ?, ?, ?, ?, ?, ?)" 
1

您需要刪除where子句。

從這裏

INSERT INTO epinfo WHERE 

嘗試這樣的: -

INSERT INTO epinfo(Season, Episode, SDLink, HDLink, DlSDLink, DlHDLink) 
VALUES (?, ?, ?, ?, ?, ?) 

從您的評論:

如果要更新的值,那麼像這樣使用: -

update epinfo 
set column = "value" 
where TVShowTitle=?