嗨即時通過使用PDO
來更新MySQL數據庫的某些字段。我寫了一個名爲「bakeIT」的類,它連接到數據庫並根據方法simple_update()
的參數更新一些字段。數據庫更新不起作用
不知何故第一實例調用BakeIT()->simple_update()
是工作,但不是第二個?這是爲什麼?我得到的是真的瘋了......
編輯: 我發現了一些錯誤:
string(85) "SQLSTATE[28000] [1045] Access denied for user 'ODBC'@'localhost' (using password: NO)" Fatal error: Call to a member function prepare() on a non-object in BakeIT.php
表如下所示:
class BakeIT {
function simple_update(
$tablename,
$fieldname,
$value,
$id,
$idname,
$token,
$tokenvalue){
$conn=$this->connect_db();
$sql= "UPDATE $tablename SET $fieldname=? WHERE $idname=? AND $token=?";
$q = $conn->prepare($sql);
$q->execute(array($value,$id,$tokenvalue));
$conn = null;}
}
//This as the first query works!
$saveanchor = new BakeIT();
$saveanchor->simple_update('navigation','anchor','whoo',5,'idnavigation','hash','3234');
//This as the second query not!
$savetitle = new BakeIT();
$savetitle->simple_update('navigation','linkname','kawoom',5,'idnavigation','hash','3234');
你不覺得你的SQL語句很危險嗎?你使盲目的數據更復雜化,但我認爲這是可能的。 Btt字段鏈接名稱是否存在? – rekire 2012-03-05 15:37:26
不工作..你是指一些確切的錯誤,或者它默默無聞? – rkosegi 2012-03-05 15:38:17
@rekire,rkosegi謝謝你的幫助。鏈接名稱確實存在...如果我用$ savetitle替換$ saveanchor一切都正常......失敗意味着它默默無聞...... – Jurudocs 2012-03-05 15:45:28