[英]PHP STMT MySQL query returning LIKE results when set to equals
也許我遺漏了一些明顯的東西,但是我沒有從查詢中得到期望的結果。 我正在從非嚴格的LIKE查詢中得到期望的結果。
public function get_product_list_by_title($title){
$result = ARRAY();
$stmt = $this->cn->prepare("SELECT `id`, `name`, `price`, `comments` FROM Products WHERE `name` = ?");
$stmt->bind_param("i", $title);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result(
$id,
$name,
$price,
$notes
);
while ($stmt->fetch()) {
$result[] = Array(
"id" => $id,
"name" => $name,
"price" => $price,
"notes" => $notes
);
}
$stmt->free_result();
$stmt->close();
return $result;
}
例如,如果我搜索“ 3”,則我會得到每個項目開頭都為3的項目(可能還會更多-它是一個很小的數據集)
有什么想法嗎?
根據您的評論, $title
是一個字符串,而name
列是VARCHAR
。 但是當你像這樣綁定$title
$stmt->bind_param("i", $title);
您將其強制轉換為整數。 將該行更改為
$stmt->bind_param("s", $title);
在bind_param
, "i"
表示參數以整數形式傳遞,而"s"
則將其視為字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.