我在搜索带有特殊字符的术语时遇到了一个致命的php错误(例如 John O'Malley
). mysql数据库字符集是utf8\u unicode\u ci
dbconn.php文件
<?php
$DB_host = "removed";
$DB_user = "removed";
$DB_pass = "removed";
$DB_name = "removed";
try
{
$DBcon = new PDO("mysql:host={$DB_host};dbname={$DB_name};charset=utf8",$DB_user,$DB_pass);
$DBcon->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo "";
}
php页面
<?php
$stmt = $DBcon->prepare("SELECT * FROM player WHERE player_name LIKE '%$Search%' LIMIT 25");
$stmt->execute();
?>
收到错误消息
致命错误:未捕获异常“pdoexception”,消息为“sqlstate[42000]:语法错误或访问冲突:1064您的sql语法有错误;检查与您的mariadb服务器版本相对应的手册,以了解在/./results中第1行的'malley%'limit 25'附近使用的正确语法。php:167 stack trace:#0/./results.php(167):pdostatement->execute()#1{main}在第167行的/./results.php中抛出
1条答案
按热度按时间8zzbczxx1#
你已经成功了一半。准备好的语句将允许您执行此查询,但您必须正确使用它们。要正确使用它们,必须参数化查询。所有值都应该是查询中的占位符,然后它们应该被绑定。
尝试: