我想搜索包含撇号的标题。 我从变量中调用标题。
例如:
$mytitle = "Daddy's Home";
然后我尝试搜索它。
$apostrophe = $val;
$replacementsapostrophe = [
"'" => "''",
];
$newval = strtr($apostrophe, $replacementsapostrophe);
$query2 = $db->prepare ("SELECT category, id_master_post, master_post_name FROM `master_post` WHERE master_post_name = '$newval'");
$query2->execute();
$value2 = $query2->fetch();
给出错误
致命错误:未捕获PDOException:SQLSTATE [42000]:语法错误或 访问冲突:1064您的SQL语法有错误;检查 与您的MariaDB服务器版本对应的手册 在家庭2''附近使用的语法在第1行 C:\ xampp \ htdocs \ piratefiles \ list.php:31堆栈跟踪:#0 C:\ xampp \ htdocs \ piratefiles \ list.php(31):PDOStatement-> execute()#1 {main}在第31行的C:\ xampp \ htdocs \ piratefiles \ list.php中抛出
我已经尝试'%''%'
仍无效。
答案 0 :(得分:0)
您应该使用预准备语句来避免sql注入,但要回答您的问题。一个例子;
try{
$db=new PDO(DSN,USER,PASS);
}catch(PDOException $e){
echo "couldn't connect cos of $e";
}
$sqlQuery = "SELECT category, id_master_post, master_post_name FROM `master_post` WHERE master_post_name = ? "
$prepared= $db->prepare($sqlQuery);
$prepared->execute($myTitle);
$resultObject = $prepared->fetchObject() ;