对于相关产品,我要说它不会显示我想要显示的结果。
这是我的代码:
// Info current t-shirt. Normally from database
$name = "T-shirt";
$description = "Stylish LUFTRAUSERS T-shirt designed by Amon26.";
$relatedSearch = $name . " " . $description;
// Query which searches for related items
$query = $db->prepare("SELECT * FROM tbl_products WHERE description LIKE '%' :relatedSearch '%' OR name LIKE '%' :relatedSearch '%' LIMIT 5");
$query -> bindParam("relatedSearch", $relatedSearch, PDO::PARAM_STR);
if($query -> execute()){
while($related = $query->fetch(PDO::FETCH_OBJ)) {
echo "<p style='color:black;'>" . $related->description . "</p></br>";
}
}
当我为$ name替换bindparam $ relatedSearch时,它确实显示了5个结果。但是当我搜索$ relatedSearch变量时,它并没有显示任何内容。它似乎搜索完整的字符串,没有任何匹配。而不是我只是想让它在该字符串中寻找单个单词
的屏幕截图答案 0 :(得分:1)
您需要在绑定中包含冒号。我也会尝试像这样构建你的查询。
$query = $db->prepare("SELECT * FROM tbl_products
WHERE description
LIKE :relatedSearch OR name LIKE :relatedSearch LIMIT 5");
$query -> bindParam(":relatedSearch", '%' . $relatedSearch . '%', PDO::PARAM_STR);
但是,也许这更像你正在寻找的......
$query = $db->prepare("SELECT * FROM tbl_products
WHERE description
LIKE :description OR name LIKE :name LIMIT 5");
$query -> bindParam(":description", '%' . $description . '%', PDO::PARAM_STR);
$query -> bindParam(":name", '%' . $name . '%', PDO::PARAM_STR);
答案 1 :(得分:0)
也许这对你有用。
请勿在{{1}}之后使用单引号。
%