У меня есть метод, как это:Вызов обходного метода, не связанного с объектом?
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() для не-объекта». Что здесь происходит, потому что я действительно не понимаю сообщение об ошибке? Если я запрошу свой db с помощью метода запроса, он будет работать нормально, но как я могу привязать значения с помощью метода подготовки?
Я могу предположить, что вы переопределяете $ this ... изменение на другое имя переменной ... даже для соглашения –
Является ли этот метод 'public function ($ sql)' anonymous? – Voitcus
Я предполагаю, что у вас есть "" по вашему запросу, и просто пропустил их, набрав код на SO? – Mchl