如何从SQL中的视图中进行选择? (一般错误:1615准备好的陈述需要重新准备)

时间:2017-11-28 19:49:39

标签: php mysql sql pdo

更新: 查询工作完美如下;当我从视图中选择时,只会出现错误。

$query = "
SELECT ModuleID, ModuleName, Credits, Lecturer, Room, EmployeeID, Forename, Surname, RoomID, RoomCode
FROM ((Module 
INNER JOIN Employee ON Module.Lecturer = Employee.EmployeeID) 
INNER JOIN Room ON Module.Room = Room.RoomID)
";

$result = $DBH->prepare($query);
$result->execute();
$data = $result->fetchAll();

尝试SELECT * FROM我创建的视图时收到以下错误。 (从表中选择可以很好地工作)。

  

带有消息'SQLSTATE [HY000]的未捕获异常'PDOException':常规错误:1615准备好的语句需要重新准备'

使用

时没有问题
SELECT * FROM Module

这是我的问题:

$query = "
SELECT * FROM module_info
";

$result = $DBH->prepare($query);
$result->execute();
$data = $result->fetchAll();

我创建的视图:

CREATE VIEW module_info 
AS
SELECT ModuleID, ModuleName, Credits, Lecturer, Room, EmployeeID, Forename, Surname, RoomID, RoomCode
FROM ((Module 
INNER JOIN Employee ON Module.Lecturer = Employee.EmployeeID) 
INNER JOIN Room ON Module.Room = Room.RoomID);

1 个答案:

答案 0 :(得分:3)

本例中的解决方案如下:

需要启用预准备语句的模拟。

在连接文件中,以下行

PDO::ATTR_EMULATE_PREPARES   => false,

需要像这样改变:

PDO::ATTR_EMULATE_PREPARES   => true,

在其他情况下,似乎解决方案可能是增加table_definitition_cache