我坚持这个,最近切换到 PDO 来学习自己。
/**
* update
* @param string $table A name of a table to update into
* @param string $data An associative array.
* @param string $where WHERE = ?.
*/
public function update($table, $dataArr, $where)
{
$fieldDetails = NULL;
foreach( $dataArr as $key => $value)
{
$fieldDetails .= "`$key` =:$value, ";
}
$fieldDetails = rtrim($fieldDetails,', ');
echo "UPDATE $table SET ($fieldDetails) WHERE (`id`=:$where)";
$stmt = $this->prepare("UPDATE $table SET ($fieldDetails) WHERE (`id`=:$where)");
foreach($dataArr as $key => $value)
{
//Binder key till värde.
$stmt->bindValue(":$key", $value);
}
$stmt->bindValue(":$where", $where);
$stmt->execute();
}
我的插入功能就像一个魅力,但这个更新功能不起作用。我认为这与没有绑定的 id 有关。我在文档和线程中进行了搜索,但找不到解决方案。
我的函数调用。
public function update()
{
$this->db->update(
'testtable',
array(
'text' => 'exempel',
'name' => 'exempel',
), 0);
}
警告:PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in
如何正确绑定我传入函数的整数值,以便执行语句?