在PHP中删除和创建MySQL视图不起作用
我对一些PHP/MySQL代码有问题 我需要一个名为gameview的视图,用于我正在编写的星球大战游戏 如果我在MySQL中创建了视图,那么代码运行得非常好。但是,我需要在每次游戏开始时删除此视图。因此,如果我在数据库中没有“gameview”视图的情况下启动,由于该视图不存在,页面将无法显示。然而,当我将视图手动添加到MySQL中时,它就可以工作了。我不明白为什么 类别代码在PHP中删除和创建MySQL视图不起作用,php,mysql,smarty,Php,Mysql,Smarty,我对一些PHP/MySQL代码有问题 我需要一个名为gameview的视图,用于我正在编写的星球大战游戏 如果我在MySQL中创建了视图,那么代码运行得非常好。但是,我需要在每次游戏开始时删除此视图。因此,如果我在数据库中没有“gameview”视图的情况下启动,由于该视图不存在,页面将无法显示。然而,当我将视图手动添加到MySQL中时,它就可以工作了。我不明白为什么 类别代码 <?php class gameView { protected $Conn; public
<?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);
?>
好吧。。。。用石头打死乌鸦。我原以为这太简单了,不可能成功,但它成功了
<?php
$gameView = new gameView($Conn);
$dropGameView = $gameView->dropGameView();
$smarty->assign('drop_gameview', $dropGameView);
$createGameView = $gameView->createGameView();
$smarty->assign('create_gameview', $createGameView);
$finalCharacter = $gameView->useGameView();
$smarty->assign('game_view', $finalCharacter);
?>
现在打开并使用该视图。您从未调用过
createGameView
您每次都需要删除该视图的可能原因是什么?我需要在每次运行游戏时都删除该视图。该视图是一个角色列表,我需要将其向下迭代到1,然后重新启动游戏。您不需要删除它并重新创建。视图就像一个存储的查询(从某种意义上讲),对您来说是一个临时的排序表。如果需要刷新该视图的结果,只需再次查询该视图。不需要删除/创建--这没有任何用处。是的,我需要一个视图。我在数据库中有许多链接表。该视图用于从表中删除角色,直到剩下1个角色,并在最后显示该角色(这基本上是一个星球大战猜猜我为uni做的游戏)。如果球员想再次比赛,我需要重新设置桌子。如果我创建视图,删除其中的字符,我将如何使其以原始状态重新加载?我是一个软件开发的新手。。。