2015-05-24 40 views
1

我有一个使用PDO调用SQL查询的PHP函数。我试图在SQL中使用LIKE运算符找到匹配字符串,但需要字符串以'%'开头和结尾。为SQL请求附加PHP字符串

现在我的搜索字词来自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; } 

回答

1

查询最终改成这样:

p.address LIKE :address 

和发送的参数是这样的:

$stmt->bindValue(':address', "%$address%", PDO::PARAM_STR); 

,你应该是好去。

+0

非常感谢你!绝对的传奇。 –