使用PDO更新數(shù)據(jù)庫時出現(xiàn)錯誤。我是PDO的新手,所以問題可能很小,我只是不明白。 關(guān)于錯誤的有趣的是,該命令可以正常運(yùn)行,并且數(shù)據(jù)庫確實(shí)得到了更新。 但是它仍然向我返回錯誤。碼:try { $stmt = $pdo->prepare("UPDATE $page SET $section = :new_content WHERE $section = '$old_content'"); $stmt->execute(array( 'new_content' => $new_content )); $result = $stmt->fetchAll(); echo "Database updated!";}catch(PDOException $e) { echo 'ERROR UPDATING CONTENT: ' . $e->getMessage();}錯誤: 錯誤更新內(nèi)容:SQLSTATE [HY000]:一般錯誤我真的不知道問題可能在哪里,因?yàn)樗浅9终Q,而且我無法找到遇到相同問題的任何人。
3 回答

郎朗坤
TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個贊
請注意,發(fā)生此錯誤的另一個可能原因是,如果在現(xiàn)有父$ stmt循環(huán)內(nèi)使用變量$ stmt進(jìn)行第二次數(shù)據(jù)庫調(diào)用。
$stmt = $conn->query($sql);
while ($row = $stmt->fetch()) { //second use of $stmt here inside loop

aluckdog
TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個贊
$old_content
對我來說將是一個大危險(xiǎn)信號。進(jìn)入查詢字符串的任何動態(tài)數(shù)據(jù)都可能有害。僅僅因?yàn)槟鷮⑵鋸臄?shù)據(jù)庫中拔出并不意味著它是安全的。例如考慮像update users set name='Miles T. O\'Brien' where name='Miles O'Brien';
。您轉(zhuǎn)義了新近更新的名稱,但是從數(shù)據(jù)庫中拉起了原始名稱,現(xiàn)在,您已經(jīng)為自己注入了語法錯誤。
- 3 回答
- 0 關(guān)注
- 755 瀏覽
添加回答
舉報(bào)
0/150
提交
取消