Php 使用mysqli_escape_字符串错误

Php 使用mysqli_escape_字符串错误,php,mysqli,Php,Mysqli,当我使用这个mysqli\u real\u escape\u string()时,为什么一直收到这个错误 我已经传递了连接,以及需要清理的字符串,但是我怎么会一直得到那个错误呢 这是我的密码 <?php class Db_DatabaseUtilities{ public static function registerAccount($conn,$username,$password,$email){ if(!isset($conn)){

当我使用这个mysqli\u real\u escape\u string()时,为什么一直收到这个错误

我已经传递了连接,以及需要清理的字符串,但是我怎么会一直得到那个错误呢

这是我的密码

<?php
    class Db_DatabaseUtilities{

        public static function registerAccount($conn,$username,$password,$email){
            if(!isset($conn)){
                    echo"XDDDDDDDDD";
            }
            $username = mysqli_real_escape_string($conn,$username);
            $email =mysqli_real_escape_string($conn,$username);
            $password = mysqli_real_escape_string($conn,$password);
            $hashedpass = crypt($password,$username);

            $sql = "INSERT INTO accounts ('username','password','email') VALUES('{$username}','{$hashedpass}','{$email}')";
            Db_DatabaseUtilities::perform_query($conn, $sql);
        }

        public static function perform_query($conn,$sql){
            $result_set = $conn->query($sql);
            if(!$result_set){
                die("Die Database Query Failed");
            }else{
                return $result_set;
            }
        }       
    }

检查
reg.php
的第6行

string mysqli\u real\u escape\u string(mysqli$link,string$escapestr)


您需要将mysqli连接作为第一个参数传递。

首先:如果这是您的真实代码,您将转义两次
$username
,而
$email
根本不是:

$username = mysqli_real_escape_string($conn,$username);
$email =mysqli_real_escape_string($conn,$username);//should probably be $email as second param
您可以选择两个问题:

  • 您的数据库连接不好…请检查您的连接,并确保它具有编码集
  • 您的输入数据不正确…其中一个参数可能不是有效字符串
  • 我看不到任何其他的选择。。。
    祝你好运

    echo“xdddddd”;这是我的底线6@user962206文件是否为
    reg.php
    ?第6行没有
    mysqli\u real\u escape\u字符串
    $username = mysqli_real_escape_string($conn,$username);
    $email =mysqli_real_escape_string($conn,$username);//should probably be $email as second param