嗨即时通过使用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