此错误显示在 PHP error_log 中,我试图找出它发生的原因和方式。显然,我的表中没有字段名称“31327d3993acf3e1b0582ab64604b2eb”。它源于一个字段的用户输入表单,该表单允许用户在四个字段中搜索短语。这是 SQL:
SELECT COUNT('id'), users.username
FROM listings
LEFT JOIN users ON listings.owner = users.user_id
WHERE dateposted > :cutoffdate
AND (title LIKE :search
OR body LIKE :search1
OR location LIKE :search2
OR username LIKE :search3
)
这是我的 php.ini错误发生在第一行
$stmt = connect()->prepare($sql);
$stmt->execute(['cutoffdate' => $cutoffdate,
'search' => "%$searchstring%",
'search1' => "%$searchstring%",
'search2' => "%$searchstring%",
'search3' => "%$searchstring%"]);
这个问题是因为我在准备好的语句中使用输入的值进行多次搜索吗?
这不完全是一个答案,但我预计问题出在 :cutoffdate 参数内。 由于您没有显示这个变量是如何填充的,它甚至可能是某种对象 - 它可能被解析为某种 id 或哈希值,而不是像您可能期望的格式化日期字符串一样进行处理(例如“2024-10- 01" f.e.)