私はこのような方法を持っています:
public function query ($sql) {
$this->result = $this->db->query($sql);
}
クエリ ステートメントを結果変数にバインドします。$result
何かを出力するいくつかのメソッドと、他のタスクの変数を処理する別のメソッドがあるため、これは非常に便利です。
ただし、同じ種類のメソッドを使用したかったのですが、準備されたステートメントで(挿入されるデータをエスケープするため)、問題に遭遇しました:
public function prepare ($sql) {
$this->result = $this->db->prepare($sql);
}
私はこのようにそれを使用しようとしました:
public function insert ($this, $that) {
// Then I tried to use my prepare method
$var = $this->prepare(INSERT INTO Table (Row1, Row2) VALUES (:Val1, :Val2));
$var->bindValue(":Val1", $this, PDO::PARAM_INT);
//... and so on
}
この問題は、$var->bindValue()
「非オブジェクトでのメンバー関数 bindvalue() の呼び出し」に現れます。エラーメッセージがよくわからないので、ここで何が起こっているのでしょうか? query メソッドを使用してデータベースにクエリを実行すると問題なく動作しますが、prepare メソッドを使用して値をバインドするにはどうすればよいですか?