php - 如何从 SQL View 中进行 SELECT? (一般错误: 1615 Prepared statement needs to be re-prepared)

标签 php mysql sql pdo

更新: 该查询工作正常,如下所示;仅当我从 View 中进行选择时才会出现该错误。

$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我创建的 View 时收到以下错误。 (从表格中选择效果很好)。

Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared'

我使用时没有任何问题

SELECT * FROM Module

这是我的查询:

$query = "
SELECT * FROM module_info
";

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

我创建的 View :

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);

最佳答案

本例的解决方案如下:

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

在连接文件中,以下行

PDO::ATTR_EMULATE_PREPARES   => false,

需要像这样改变:

PDO::ATTR_EMULATE_PREPARES   => true,

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

关于php - 如何从 SQL View 中进行 SELECT? (一般错误: 1615 Prepared statement needs to be re-prepared),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47539775/

相关文章:

php - 在 Symfony Doctrine 查询生成器中选择具有 x 标签的产品

php - 在php中从多个表中搜索

java - java 13.0.1、mysql 5.7 我应该选择哪个版本的 Connector/J?

MySQL - 选择ID下的行,按具有最新时间戳的列值分组

mysql - 如何根据列更改主键以具有不同的 Auto_Increment

php - 图片上传失败

php - 电子邮件或用户名的拆分错误消息已存在

php - 在 Mac Mini lion 服务器上从源代码编译 PHP 失败

用于在 'IN (10,13,8,11,6,14,9,12,7,15)' 附近使用正确语法的 MySQL 服务器版本

mysql - 如何使用 WHERE 子句和 INNER JOIN 从列中获取所有行