Php mysqli\u real\u escape\u字符串不工作

Php mysqli\u real\u escape\u字符串不工作,php,mysql,Php,Mysql,我浏览了整个网页,检查了php语法,但我不明白为什么这段代码不起作用 // Create connection $con=mysqli_connect("localhost","task_user","task","tasks"); // Check connection if (mysqli_connect_errno()) { echo "No se puede conectar a la base de datos: " . mysqli_connect_erro

我浏览了整个网页,检查了php语法,但我不明白为什么这段代码不起作用

  // Create connection
  $con=mysqli_connect("localhost","task_user","task","tasks");

  // Check connection
  if (mysqli_connect_errno()) {
    echo "No se puede conectar a la base de datos: " . mysqli_connect_error();
  }
  else{
    //Verificación de la información de logeo
    $username = $_POST["user"];
    $username = stripslashes($username);
    $password = $_POST["passwd"];    
    $username = $mysqli_real_escape_string($con,$username);
    //$password = $mysqli_real_escape_string($password);
    //$sqlquery = "SELECT username,password FROM users WHERE username ='$username' AND password='$password'";
  }


  echo '<script type = "text/javascript"> restoreValues("' . $_POST["user"] . '","' .  $_POST["passwd"] . '"); </script>';
  echo "ALL OK";
//创建连接
$con=mysqli_connect(“本地主机”、“任务用户”、“任务”、“任务”);
//检查连接
if(mysqli\u connect\u errno()){
echo“没有连接到数据库:”.mysqli_connect_error();
}
否则{
//信息核查
$username=$\u POST[“用户”];
$username=stripslashes($username);
$password=$_POST[“passwd”];
$username=$mysqli\u real\u escape\u字符串($con,$username);
//$password=$mysqli\u real\u escape\u字符串($password);
//$sqlquery=“从用户名='$username'和密码='$password'的用户中选择用户名、密码”;
}
回显“restoreValues”(“..$\u POST[“user”]”,“..$\u POST[“passwd”]”);
回应“一切正常”;

如果我对mysqli\u real\u escape\u字符串进行注释,那么它会工作(所有OK都会打印出来),如果我不这样做,它就不会工作。我做错了什么???

您使用的是
$
先签名后函数
mysqli\u real\u escape\u string

成功

$username = mysqli_real_escape_string($con,$username);
而不是

$username = $mysqli_real_escape_string($con,$username);
            ^ remove this  

您有一个$before mysql\u real\u escap\u字符串,这是错误的。如果删除$,它应该可以工作。您的版本将使用变量$mysqli\u real\u escape\u string(在您的案例中不存在)中定义的名称调用函数。

该函数的名称是
mysqli\u real\u escape\u string
,而不是
$mysqli\u real\u escape\u string
,这是语法高亮显示真正方便的地方(并且知道哪些颜色意味着什么)\uw,您不应该直接在数据库中存储密码,而是以散列方式存储。使用绑定变量,您就不需要使用mysqli\u real\u escape\u string(或stripslashes)谢谢。我是个白痴。一直盯着代码看了太久,没有注意到明显的问题。非常感谢。想知道为什么任何在线语法检查器都没有得到这一点,尽管。。。。。