我有一個SQL查詢是這樣的:如何在PDO準備語句中使用LIKE子句?
SELECT * FROM tbl_name WHERE title Like "%:needle%"
當我查詢MySQL數據庫手動與此聲明它的工作原理。但是,當我使用它與PDO和相同的值爲:針我手動查詢它只是返回一個空的結果集。
utf8編碼會影響它的行爲嗎?
我有一個SQL查詢是這樣的:如何在PDO準備語句中使用LIKE子句?
SELECT * FROM tbl_name WHERE title Like "%:needle%"
當我查詢MySQL數據庫手動與此聲明它的工作原理。但是,當我使用它與PDO和相同的值爲:針我手動查詢它只是返回一個空的結果集。
utf8編碼會影響它的行爲嗎?
隨着PDO,這可以像做:
$stmt = $db->prepare("SELECT * FROM tbl_name WHERE title LIKE :needle");
$needle = '%somestring%';
$stmt->bindValue(':needle', $needle, PDO::PARAM_STR);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
的 '%' 必須在變量,而不是語句。 把'%'放在變量中,你應該沒問題。
'SELECT * FROM tbl_name WHERE title Like ":needle"'
$needle = "%$needle%";
嘗試像
$sql = 'SELECT * FROM tbl_name WHERE title Like ":needle"';
$prep = $dbh->prepare($sql);
$ret = $prep->execute(array(':needle' => '%'.$somestring.'%'));