这是我创建的搜索选项的方式,在页面上没有出现此线程,我必须工作的罚款,但这是我应该在表中查找3个字段的方式,并且以任何方式工作。
if($stmt = $this->mysqli->prepare('SELECT `navn`, `link`, `img`, `omrade` FROM `ordblindtest` WHERE `navn` LIKE "%" . $navn . "%" OR `omrade` LIKE "%" . $omrade . "%" OR `sogord` LIKE "%" . $sogord . "%"'))
{
$stmt->bind_param('sss', $navn, $omrade, $sogord);
$navn = $_POST["sogord"];
$omrade = $_POST["sogord"];
$sogord = $_POST["sogord"];
...
}
问题是我遇到了这个错误:
错误:您的SQL语法中有错误;检查手册 对应于您的MySQL Server版本,以供正确的语法使用 靠近 '。$ navn。"%"或
omrade
喜欢"%"。$ OMRADE。"%"或sogord
喜欢 "%" 。$ SOG'在第1行
我不明白为什么会出现错误。我为什么要收到错误?
,因为您使用准备的陈述应该使用?
占位符而不是变量,因此您的查询应该看起来像这样:
if ($stmt = $this->mysqli->prepare('
SELECT
`navn`,
`link`,
`img`,
`omrade`
FROM
`ordblindtest`
WHERE
`navn` LIKE CONCAT("%", ?, "%")
OR
`omrade` LIKE CONCAT("%", ?, "%")
OR
`sogord` LIKE CONCAT("%", ?, "%")
'))
{
$stmt->bind_param('sss', $navn, $omrade, $sogord);
// ...