我正在尝试根据新用户的输入更新我的日历标题。
变量如下:
$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));
答案 0 :(得分:2)
要查明表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
或架构限定表名:
UPDATE calendar.calendar SET title = $1 WHERE title = $2