我正在学习如何在php中使用PDO OOP创建注册和登录系统的教程。我完成了教程,最终使一切正常。我的问题是如何让已经登录的人更新另一个用户。是否有一种不同的方式来了解错误而不是我所做的。请看下面的代码。 (这不是整个代码只是相关部分。如果您需要或想要更多,请告诉我,我将编辑帖子。)
此外,我输出的错误是“更新时出现问题”。来自用户类。
提前感谢所有帮助。
这是表格
public function update($fields = array(), $chosenfield = 'id', $id= null) {
if(!$id && $this->isLoggedIn()) {
$id = $this->data()->id;
}
if(!$this->_db->update('users', $chosenfield, $id, $fields)) {
throw new Exception('There was a problem updating.');
}
}
以下是用户类
中的方法 public function query($sql, $params = array()) {
$this->_error = false;
if($this->_query = $this->_pdo->prepare($sql)){
$x = 1;
if(count($params)){
foreach($params as $param){
$this->_query->bindValue($x, $param);
$x++;
}
}
if($this->_query->execute()){
$this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ);
$this->_count = $this->_query->rowCount();
} else {
$this->_error = true;
}
}
return $this;
}
public function update($table, $chosenfield, $id, $fields){
$set = '';
$x = 1;
foreach($fields as $name => $value){
$set .="{$name} = ?";
if($x < count($fields)){
$set .= ', ';
}
$x++;
}
$sql = "UPDATE {$table} SET {$set} WHERE {$chosenfield} = {$id}";
if(!$this->query($sql, $fields)->error()){
return true;
}
return false;
}
以下两个方法将显示从DB类发生的事情。
{{1}}