Я попытался сделать соединение с базой данных php, используя класс, который, наконец, работает. Мой класс выглядит следующим образом:PHP: Как использовать подготовку к объекту базы данных?
class Db {
protected static $connection;
public function connect() {
if(!isset(self::$connection)) {
self::$connection = new mysqli('localhost','root','','Personenverzeichnis');
}
if(self::$connection === false) {
return false;
}
return self::$connection;
}
public function query($query) {
$connection = $this -> connect();
$result = $connection -> query($query);
return $result;
}
public function select($query) {
$rows = array();
$result = $this -> query($query);
if($result === false) {
return false;
}
while ($row = $result -> fetch_assoc()) {
$rows[] = $row;
}
return $rows;
}
public function error() {
$connection = $this -> connect();
return $connection -> error;
}
public function quote($value) {
$connection = $this -> connect();
return "'" . $connection -> real_escape_string($value) . "'";
}
}
Затем я использую этот класс в моем PHP-кода:
$db = new Db();
$abfrage = "SELECT `Date`,`Keyword` FROM `notes` WHERE `PERSON_ID` =
2 ORDER BY `Date` DESC; ";
$resultat = $db -> query($abfrage);
while($daten = $resultat->fetch_object()){
echo "<p>date ".$daten->Date.": ".$daten->Keyword."</p>";
}
Таким образом, он отлично работает. Но как я могу использовать метод prepare()?
Я пробовал этот код, который не работает. Кто-нибудь может мне помочь?
$db = new Db();
$abfrage = "SELECT `Date`,`Keyword` FROM `notes` WHERE `PERSON_ID` = 2
ORDER BY `Date` DESC; ";
$resultat = $db->prepare($abfrage);
$resultat->execute();
$resultat->bind_result($date, $keyword);
while($daten = $resultat->fetch_object()){
echo $date .": " .$keywords ."<br>";
}
Подготовка к методу неизвестна. Как решить эту проблему?