我对这段代码有问题,我使用表单将值传递给搜索引擎,我想要做的是将特殊字符作为常规字符读取,因为如果我键入%sam%它会读取这是'查询'的一部分,而不是常规字符串(普通字符)
可以
$search = $_GET['query'];
$query = "SELECT * FROM mobiles WHERE (`name` LIKE :search) or (`type` LIKE :search)";
$query_params = array(':search' => mysql_real_escape_string( $search ));
try
{
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
die("Failed to run query: " . $ex->getMessage());
}
答案 0 :(得分:0)
使用pdo连接对象的引用
$db->quote($search ); //Assuming your connection is $db
虽然%是特殊的,但它在字符串中是合法的,所以你可能不得不手动转义它。
$search = str_replace("%", "\%", $search),
答案 1 :(得分:0)
有些观点:
:search
,要么在构建PDO时设置:search1
,:search2
两个em ATTRIBUTE_EMULATE_PREPARES=>TRUE
,LIKE
} %
时,您必须确保在提交给占位符的字符串周围传递array(':search' => '%' . $search . '%');
:{{1}}