У меня проблема с кодом PHP / MySQL.
Мне нужно представление под названием gameview для игры Star Wars, которую я пишу.
Если я создал представление в MySQL, тогда код работает отлично. Тем не менее, мне нужно, чтобы этот вид был отброшен при каждом запуске игры. Так что, если я начну без представления «GameView», присутствующего в БД, страница не может быть отображена из-за того, что представление не существует. Однако, как только я вручную добавляю представление в MySQL, оно работает. Я не понимаю, почему.
Код класса
<?php
class gameView
{
protected $Conn;
public function __construct($Conn)
{
$this->Conn = $Conn;
}
public function dropGameView()
{
$drop = "DROP VIEW if EXISTS gameview;";
$stmt = $this->Conn->prepare($drop);
$stmt->execute(array());
}
public function createGameView()
{
$view = "CREATE VIEW gameview AS SELECT id, name, image, quote FROM person;";
$stmt = $this->Conn->prepare($view);
$stmt->execute(array());
}
public function useGameView()
{
$query = "SELECT * from gameview";
$stmt = $this->Conn->prepare($query);
$stmt->execute(array());
$gameView = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $gameView;
}
}
?>
PHP код
<?php
$gameView = new gameView($Conn);
$finalCharacter = $gameView->useGameView();
$smarty->assign('game_view', $finalCharacter);
?>