我在通过 PHP 类更新 MySQL 数据库时遇到了一些麻烦(这是我第一次真正涉足 PHP 类,所以我可能会遗漏一些非常基本的元素)。我已经包含了与我遇到的问题相关的代码(即没有正确更新 MySQL 表)。
为了快速解释我的代码,我在构造对象时从数据库中提取用户信息。然后,我调用该函数modify_column()
从我提取的数据中增加或减少一个数值。最后,我运行save()
更新 MySQL 表。
我有两个问题:(1)$this->info
没有被修改函数正确更新(例如,如果 I modify_column('age', '1')
,一个 var_dump 显示age int(3)
而不是age string(2) = 10
(假设原始年龄是 9 岁)。和(2),更新查询不起作用.我假设这是因为我有一个源自第一个问题的大小不正确的变量。
代码片段(我的数据库函数基于 PDO 包装器,它们一直工作得很好):
class user {
public $id;
public function __construct($id) {
global $db;
/* pull the user's information from the database */
$bind = array(':id' => $id);
$result = $db->select('user', 'id = :id', $bind, '*', SQL_SINGLE_ROW);
$this->id = $result['id'];
$this->info = $result;
}
/*
* Update the user's MySQL table, thereby saving the data.
*/
public function save() {
global $db;
$bind = array($this->id);
$db->update('users', $this->info, 'id = ?', $bind);
}
public function modify_column($column, $amount) {
$this->info[$column] += $amount;
}
}
另外,请让我知道是否有一种更简洁的方法来完成我想要完成的工作(即使用类函数快速修改表中的数值。
谢谢!