mysqli_real_escape_string得到解析错误

时间:2016-04-20 07:09:06

标签: php mysql

即使我使用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);
?>

3 个答案:

答案 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"";
?>

因此,如果您想要一个带引号的字符串,您可以执行以下操作之一:

  1. $text = "I'm 'X-MAN'";
  2. $text = 'I"m "X-MAN"';
  3. 因此,您的最终代码将是:

    <?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\"

    希望这会让你清楚。