我有一個搜索MySQL表的PHP腳本。它適用於常規文本搜索,但在搜索字符串包含單引號(如單詞O'Brien
)時不返回結果。在phpMyAdmin中運行等效的SQL確實會返回結果。PHP:當搜索參數包含單引號時,MYSQLi查詢不返回任何結果
這裏是代碼我使用:
$mysqli = new mysqli($host, $user, $password, $database);
$mysqli->set_charset('utf8');
if (isset($_GET["q"]))
{
$search = $_GET["q"];
}
$sql = 'SELECT * FROM MyTable WHERE MyField LIKE ?';
$stmt = $mysqli->prepare($sql);
$param = '%' . $search . '%';
$stmt->bind_param("s", $param);
$stmt->execute();
$result = $stmt->get_result();
如何處理像O'Brien
使這個返回結果字符串?
您是否已驗證'$ search'的值?如果你在一個非常舊的服務器上,理論上可以啓用魔術引號...... – jeroen 2014-10-09 22:10:17
同樣對於數據庫中的確切值,它們是否與你期望的完全相同? – jeroen 2014-10-09 22:19:14