即使我使用mysqli_real_escape_string
,为什么会出现此错误?在这个例子中,mysqli_real_escape_string是否在字符串中转义引号?
解析错误:语法错误,意外' X' (T_STRING)in 第20行的C:\ xampp \ htdocs \ PHP \ processor.php
<?php
$text = "I'm "X-MAN"";
$con = @mysqli_connect( "localhost:3306", "root", "P@ssw0rd", "DogSport" ) or die ("Couldn't connect to server");
echo mysqli_real_escape_string($con, $text);
?>
答案 0 :(得分:0)
要么改变
$text = "I'm "X-MAN"";
要
$text = "I'm \"X-MAN\"";
或致:
$text = 'I\'m "X-MAN"';
字符串在字符串完成之前关闭单引号/双引号。
所以,逃避中间单/双引号。
答案 1 :(得分:0)
首先,您需要将引号转义为
$text = "I'm \"X-MAN\"";
使用端口
建立连接$con = mysqli_connect( "localhost", "root", "P@ssw0rd", "DogSport","3306" ) or die ("Couldn't connect to server");// pass fifth parameter is your port
检查连接使用中的错误
if ($con->connect_errno) {
printf("Connect failed: %s\n", $con->connect_error);
exit();
}
答案 2 :(得分:0)
这是因为$text
变量中的String本身就是一个错误。如果您只运行此行代码,则您将拥有相同的 Parse error
。
<?php
$text = "I'm "X-MAN"";
?>
因此,如果您想要一个带引号的字符串,您可以执行以下操作之一:
$text = "I'm 'X-MAN'";
$text = 'I"m "X-MAN"';
因此,您的最终代码将是:
<?php
$text = "I'm 'X-MAN'";
$con = @mysqli_connect( "localhost:3306", "root", "P@ssw0rd", "DogSport" ) or die ("Couldn't connect to server");
echo mysqli_real_escape_string($con, $text);
?>
转义字符串将分别为I\'m \'X-MAN\'
或I\"m \"X-MAN\"
。
希望这会让你清楚。