我有一个PHP函数,它使用PDO来调用SQL查询。我试图在SQL中使用LIKE运算符找到匹配字符串,但这需要字符串以'%'开头和结尾。
现在我的搜索字词来自一个PHP字符串,我想知道是否有任何方法可以附加它以包含'%'。目前我尝试单独添加它,但它似乎没有起作用。
function searchBay($address) {
// STUDENT TODO:
// Change lines below with code to retrieve the Bays with similar address from the database
// - - C H E C K - -
$db = connect();
$sql = "SELECT p.bayid, p.site, p.address, p.avail_wk_start ||' '|| p.avail_wk_end ||' '|| p.avail_wend_start ||' '|| p.avail_wend_end AS avail
FROM PeerPark.ParkBay p
WHERE p.address LIKE (% ':address' %')";
try {
$stmt = $db->prepare($sql);
$stmt->bindValue(':address', $address, PDO::PARAM_STR);
$stmt->execute();
$row = $stmt->fetchObject();
$stmt->closecursor();
} catch (PDOException $e) {
print "Error searching for bays: " . $e->getMessage();
die();
}
print_r($row);
return $row; }
答案 0 :(得分:1)
将您的查询结束更改为:
p.address LIKE :address
并发送如下参数:
$stmt->bindValue(':address', "%$address%", PDO::PARAM_STR);
你应该好好去。