我在通過PHP類更新MySQL數據庫時遇到了一些問題(這是我第一次真正進入PHP類,因此我可能會缺少一些非常基本的元素)。我已經包含了與我遇到的問題相關的代碼(即,沒有正確更新MySQL表)。遇到PHP類和MySQL插入/更新的問題
爲了快速解釋我的代碼,我在構造對象時從數據庫中提取用戶信息。然後,我調用函數modify_column()
來增加或減少我拉出的數據的數值。最後,我運行save()
來更新MySQL表。
我有兩個問題:(1)$this->info
沒有被所述修改函數正確地更新(例如,如果我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;
}
}
另外,請求e讓我知道是否有更好的方法來完成我正在嘗試完成的任務(即,使用類函數快速修改表中的數值。
謝謝!