[英]Could not search when special character is in the string using PHP and MySQL
我需要使用Like
關鍵字從表中搜索值,而我在文本中放置特殊字符時未顯示任何結果。 我在下面解釋我的查詢。
$name="Henna*/"
$sname='%'.$name.'%';
$sql="select * from cn_user_login name like '".$sname."' order by login_id desc";
我正在解釋下面的表格。
cn_user_login:
login_id name status
1 Heena Mohanty 1
2 Heena raj 1
3 Heena@ 1
4 Heena* 1
這里沒有搜索結果。 在這里,我不需要任何特殊字符是否與某個/所有字母匹配,結果就應該出現。
您可以嘗試這樣做。.刪除特殊字符
$name="Henna*/";
$sname = preg_replace('/[^A-Za-z0-9\-]/', '', $name);
$sql="select * from cn_user_login where name like '%".$sname."%' order by login_id desc";
嘗試使用常規期望值進行替換
$name = preg_replace('/[^A-Za-z0-9\-]/', '', $name);
要么
$name = preg_replace('/[^A-Za-z0-9\-\']/', '', $name);
如果您知道字符,則使用str_replace()函數
$name = str_replace("your character", '', $name);
更好的解決方案是使用PDO中准備好的語句
您可以這樣寫:
$sql = 'select * from cn_user_login name like :param_name order by login_id desc';
$paramName = '%'.$name.'%';
$db = new PDO('dsn_string', 'user', 'password');
$stm = $db->prepare($sql);
$stm->execute([':param_name' => $paramName]);
$result = $stm->fetchAll();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.