PHP クラスを介して MySQL データベースを更新するのに問題があります (これは PHP クラスへの最初の本格的な進出であるため、いくつかの非常に基本的な要素が欠けている可能性があります)。私が抱えている問題 (つまり、MySQL テーブルを適切に更新していない) に関連するコードを含めました。
コードを簡単に説明するために、オブジェクトが作成されるときにデータベースからユーザーの情報を取得します。modify_column()
次に、取得したデータから数値を増減する関数を呼び出します。最後に、実行save()
して MySQL テーブルを更新します。
2 つの問題があります: (1)$this->info
変更機能によって適切に更新されていません (たとえば、 I の場合、 (元の年齢が 9 であると仮定すると)ではなくmodify_column('age', '1')
var_dump が表示されます)。(2) 更新クエリが機能していません。最初の問題に起因する不適切なサイズの変数があるためだと思います。age int(3)
age string(2) = 10
コードのスニペット (私のデータベース関数は 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;
}
}
また、私が達成しようとしていることを行うためのより適切な方法があれば教えてください (つまり、クラス関数を使用してテーブル内の数値をすばやく変更します。
ありがとう!