簡體   English   中英

如何從SQL視圖中進行選擇? (一般錯誤:1615准備的語句需要重新准備)

[英]How to SELECT from a view in SQL? (General error: 1615 Prepared statement needs to be re-prepared)

更新:查詢工作正常如下: 當我從視圖中選擇時,只會出現該錯誤。

$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創建的視圖中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);

這種情況下的解決方案如下:

需要啟用對准備好的語句的仿真。

在連接文件中,以下行

PDO::ATTR_EMULATE_PREPARES   => false,

需要像這樣更改:

PDO::ATTR_EMULATE_PREPARES   => true,

在其他情況下,解決方案似乎是增加table_definitition_cache

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM