簡體   English   中英

不存在准備好的語句

[英]Prepared Statement Does not Exist

我正在嘗試根據新用戶的輸入來更新日歷的標題。

變量如下:

$titleNew = 'New Title'
$titleOld = 'Old Title'

舊標題存在於數據庫中,並且應進行相應更新,但是使用此代碼,我收到一條錯誤消息,提示我的准備語句不存在。

$result = pg_prepare($conn, "update", "UPDATE calendar SET title = $1 WHERE title LIKE $2");

$result = pg_execute($conn, "update", array($titleNew, $titleOld));

要查找表calendar是否確實存在於您連接的數據庫中,請在同一會話中運行:

SELECT n.nspname As schema_name, c.relname As tbl_name
FROM   pg_class c
JOIN   pg_namespace n ON n.oid = c.relnamespace
WHERE  c.relname ILIKE 'calendar';

我懷疑潛在的問題是表名或連接參數的混亂。您可能有:

  • 混淆了數據庫。
  • 混淆了端口。
  • 一個search_path設置,其中不包括表所在的架構。請使用以下命令檢查您的search_path: SHOW search_path;
    是否包含架構名稱?
  • 表名拼寫錯誤。
  • 將雙引號混合大小寫的名稱(例如"Calendar"與(通常是首選的)小寫名稱calendar混淆了起來。

如果您的search_path沒有實際的模式,請search_path :正確設置search_path或對表名進行模式限定

UPDATE calendar.calendar SET title = $1 WHERE title = $2

暫無
暫無

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

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