Php 同时搜索三个区域,
这就是我创建这个线程的方式,我必须做的很好,但这就是我应该在表中查找3个字段的方式,它以任何方式工作Php 同时搜索三个区域,,php,sql,mysqli,Php,Sql,Mysqli,这就是我创建这个线程的方式,我必须做的很好,但这就是我应该在表中查找3个字段的方式,它以任何方式工作 if($stmt = $this->mysqli->prepare('SELECT `navn`, `link`, `img`, `omrade` FROM `ordblindtest` WHERE `navn` LIKE "%" . $navn . "%" OR `omrade` LIKE "%" . $omrade . "%" OR `sogord` LIKE "%" . $so
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服务器版本,以便使用正确的语法
差不多$纳文。“%”,或类似“%”的omrade
$欧姆拉德。“%”,或sogord
比如“%”$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);
// ...
您正在向查询中注入变量。这不是如何使用准备好的语句。可能重复