Php 如何处理mysql中的特殊字符

Php 如何处理mysql中的特殊字符,php,mysql,Php,Mysql,我有一个表单,用户在其中输入数据,然后将其输入mysql数据库。问题是当他们输入了“%”符号或其他特殊字符时,当我的网站试图显示记录时,会导致问题。在显示结果时,它实际上不会导致该记录显示任何内容。我该如何解决这个问题 $query = "SELECT * FROM makerperk WHERE pid='$pid' LIMIT 1"; $result = mysqli_query($connection, $query) or die(mysqli_error($connection));

我有一个表单,用户在其中输入数据,然后将其输入mysql数据库。问题是当他们输入了“%”符号或其他特殊字符时,当我的网站试图显示记录时,会导致问题。在显示结果时,它实际上不会导致该记录显示任何内容。我该如何解决这个问题

$query = "SELECT * FROM makerperk WHERE pid='$pid' LIMIT 1";
$result = mysqli_query($connection, $query) or die(mysqli_error($connection));
while($row = mysqli_fetch_assoc($result)) {
    $makerid = $row['makerid'];
    $name = $row['name'];
    $title = $row['title'];
    $perkdescription = $row['perkdescription'];
    $image = $row['image'];
    $perktype = $row['perktype'];
    $restrictions = $row['restrictions'];
}
我认为你应该使用


您是否使用PHP与mysql交互?还是其他编程语言?您有代码示例吗?我使用的代码是$query=“SELECT*FROM makerperk,其中pid=”$pid“LIMIT 1”$结果=mysqli_query($connection,$query)或die(mysqli_error($connection));而($row=mysqli_fetch_assoc($result)){$makerid=$row['makerid'];$name=$row['name'];$title=$row['title'];$perkscription=$row['perkscription'];$image=$row['image'];$perktype=$row['perktype'];$restrictions=$row['restrictions'];@TRacey不在应放在问题本身的注释中添加源代码。请在您的问题中添加一个可由其他人运行的注释,这表明记录未显示。同时检查浏览器中生成的HTML代码,以查看您的记录数据是否在“某处”在HTML代码中,
$pid
是否可以是“%”并且它出现在数据库中?
/*Escape input variable:*/
$pid = mysqli_real_escape_string($connection, $pid);

/*Run query with escaped string:*/
$query = "SELECT * FROM makerperk WHERE pid='$pid' LIMIT 1";
$result = mysqli_query($connection, $query) or die(mysqli_error($connection));
while($row = mysqli_fetch_assoc($result)) {
    $makerid = $row['makerid'];
    $name = $row['name'];
    $title = $row['title'];
    $perkdescription = $row['perkdescription'];
    $image = $row['image'];
    $perktype = $row['perktype'];
    $restrictions = $row['restrictions'];
}