Я пытаюсь использовать метод обновления внутри моего класса базы данных, где я мог бы обновить запись. Я пытаюсь убедиться, что я могу использовать этот метод в другом экземпляре, где мне не нужно повторять запись того же утверждения. Вот мой код:PDO Подготовленный оператор Внутри класса
<?php
require 'init.php';
class Database {
private $conn;
public function __construct() {
try {
$this->conn = new PDO('mysql:host=localhost;dbname=school', DB_USER, DB_PASS);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
return false;
}
}
public function update($table, $key, $value, $id) {
$stmt = $this->conn->prepare("UPDATE $table SET $key = $value WHERE id = :id");
return $stmt->execute(array($key => $value, 'id' => $id));
}
}
$database = new Database();
Моя проблема в том, я получаю некоторые ошибки, когда я пытаюсь создать экземпляр класса $result = $database->update('admin', 'username', 'golobo', 13);
вопрос, что я делаю неправильно?
Благодаря
Какие фактические значения используются для '$ table' и' $ key' и '$ value'? Кроме того, расскажите нам о реальных ошибках, которые вы получаете; это важно. Являются ли эти фактические и постоянные значения '' admin ',' username ',' golobo ', 13' передаются? –
Если вы пытаетесь передать значение, содержащее пробел, дефис, апостроф и т. Д., Или что может быть [** зарезервированное ключевое слово **] (http://dev.mysql.com/doc/refman/ 5.5/en/reserved-words.html), то это создаст проблему. Вам нужно было бы обернуть ваши переменные в backticks '\' ' –
Фактически я пытался проверить эти значения' useename, golobo, 13' для проверки объекта. @ Fred-ii- – Babangida