2

この mysqli_real_escape_string() を使用しているのに、なぜこのエラーを受け取り続けたのですか?

mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\xampp\htdocs\beatbeast\reg.php on line 6

私はすでに接続とサニタイズが必要な文字列を渡していますが、なぜそのエラーが発生し続けるのでしょうか?

これが私のコードです

<?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;
            }
        }       
    }
4

2 に答える 2

3

最初:これが実際のコードである場合、$username2回エスケープしていますが、まったくエスケープして$emailいません:

$username = mysqli_real_escape_string($conn,$username);
$email =mysqli_real_escape_string($conn,$username);//should probably be $email as second param

次の 2 つの問題のオプションがあります。

  1. データベース接続に問題があります...接続を確認し、エンコードが設定されていることを確認してください。
  2. 入力データが正しくありません...パラメータの 1 つが有効な文字列ではない可能性があります

他のオプションが表示されません...幸運を祈ります

于 2012-06-24T11:41:46.413 に答える
0

の 6 行目を確認してくださいreg.php

string mysqli_real_escape_string ( mysqli $link , string $escapestr )

最初のパラメーターとして mysqli 接続を渡す必要があります。

于 2012-06-24T11:29:48.110 に答える