PHP 和 MySQL 错误“where 子句”中的未知列“31327d3993acf3e1b0582ab64604b2eb”

问题描述 投票:0回答:1

此错误显示在 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%"]);
    

这个问题是因为我在准备好的语句中使用输入的值进行多次搜索吗?

php mysql
1个回答
0
投票

这不完全是一个答案,但我预计问题出在 :cutoffdate 参数内。 由于您没有显示这个变量是如何填充的,它甚至可能是某种对象 - 它可能被解析为某种 id 或哈希值,而不是像您可能期望的格式化日期字符串一样进行处理(例如“2024-10- 01" f.e.)

© www.soinside.com 2019 - 2024. All rights reserved.