2012-06-17 104 views
13

我讀過這些查詢應該怎麼寫多個例子,但我努力讓這個特定喜歡用bindParam在bindParam用於MySQL的PDO查詢

時運行請問這是正確的方式使用LIKE匹配以?開頭的用戶名

$term = "a"; 
$term = "'$term%'"; 

$sql = "SELECT username 
     FROM `user` 
     WHERE username LIKE :term 
     LIMIT 10";  

$core = Connect::getInstance(); 

$stmt = $core->dbh->prepare($sql); 
$stmt->bindParam(':term', $term, PDO::PARAM_STR); 
$stmt->execute(); 
$data = $stmt->fetchAll(); 

回答

21

不,你不需要內單引號所以只是$term = "$term%";

你現在正在運行會嘗試聲明匹配'a%'而不是a%

bindParam將確保所有字符串數據在給予SQL語句時會自動正確引用。

+0

以下是示例代碼:https://gist.github.com/arsho/a203e7bc156ea566587361a76038f020 – arsho