Предупреждение: mysqli_real_escape_string () ожидает ровно 2 параметра, 1 из них … что я делаю неправильно?

Я пытаюсь сделать php логин, но я получаю эту ошибку: Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given, что я делаю неправильно?

register.php

 <!doctype html> <html lang"fi"> <head> <link rel="icon" type='image/png' href='images/logo.png'> <title> asd </title> <link href="css/styles.css" type="text/css" rel="stylesheet"> </head> <body> <!--reg alkaa--> <form action="register.php" method="post"> <p><input type="text" name="username" placeholder="Username"> <p><input type="email" name="email" placeholder="Email"> <p><input type="password" name="pass" placeholder="Password"> <p><input type="password" name="pass1" placeholder="Password"> <p><input type="submit" name="submit" value="Register"> </form> <?php if(isset($_POST['submit'])) { $username = mysqli_real_escape_string($_POST['username']); $pass = mysqli_real_escape_string($_POST['pass']); $pass1 = mysqli_real_escape_string($_POST['pass1']); $email = mysqli_real_escape_string($_POST['email']); if($username && $pass && $pass1 && $email) { if($pass==$pass1) { $connect = mysql_connect("mysql13.000webhost.com","a2955851_SW","ASPIREX1930"); mysql_select_db("a2955851_SW"); $query = mysql_query("INSERT INTO users VALUES('$username','$pass','$email');"); echo "You have been registered."; } else { echo "Password must match."; } } else { echo "All fields are required."; } } ?> <!--reg end--> <Center> <a href="index.php"> <h1> asd </h1> </center> <div id="main"> <h3> <div class="menu"> <a href="index.php">Etusivu</a> &bullet; <a </div> </h3> </div> <div class="jonne"> </div> <script src="javascript/jquery.js"></script> </body> </html> 

Я использую 000webhost и это первый раз, когда я использую базы данных mysql онлайн.

Вы смешиваете функцию mysqli и mysql .

Если вы используете mysql-функцию, то вместо mysqli_real_escape_string($your_variable); использование

 $username = mysql_real_escape_string($_POST['username']); $pass = mysql_real_escape_string($_POST['pass']); $pass1 = mysql_real_escape_string($_POST['pass1']); $email = mysql_real_escape_string($_POST['email']); 

Если вы используете mysqli_ * функцию, вы должны включить ваше подключение к базе данных в функцию mysqli_real_escape :

 $username = mysqli_real_escape_string($your_connection, $_POST['username']); $pass = mysqli_real_escape_string($your_connection, $_POST['pass']); $pass1 = mysqli_real_escape_string($your_connection, $_POST['pass1']); $email = mysqli_real_escape_string($your_connection, $_POST['email']); 

Примечание. Используйте функцию mysqli_ *, поскольку mysql устарел. Для информации, пожалуйста, прочитайте mysqli_ *

Из документации функция mysqli_real_escape_string() имеет два параметра.

 string mysqli_real_escape_string ( mysqli $link , string $escapestr ). 

Первый – это ссылка на экземпляр mysqli (объект подключения к базе данных), второй – строка для выхода. Таким образом, ваш код должен выглядеть так:

 $username = mysqli_real_escape_string($yourconnectionobject,$_POST['username']); 

Для функции mysqli_real_escape_string требуется подключение к вашей базе данных.

 $username = mysqli_real_escape_string($your_connection, $_POST['username']); 

PS: Не смешивайте функции mysql_ * и mysqli_ * . Используйте mysqli_* functions or PDO поскольку функции mysql_ * устарели и будут удалены в будущем.

вы смешиваете mysql и mysqli

используйте этот mysql_real_escape_string как

 $username = mysql_real_escape_string($_POST['username']); 

ПРИМЕЧАНИЕ: mysql_* устарел использовать mysqli_* или PDO

Если вы используете процедурный стиль, вы должны указать как соединение, так и строку:

 $name = mysqli_real_escape_string($conn, $name); 

Только объектно-ориентированная версия может быть выполнена только с помощью строки:

 $name = $link->real_escape_string($name); 

Документация, как мы надеемся, сделает это ясным.

передать $connect качестве первого параметра в mysqli_real_escape_string для этого первого подключения, а затем сделать rest.read здесь http://php.net/manual/en/mysqli.real-escape-string.php

Используйте этот путь вместо своего пути.

  addslashes(trim($_POST['username'])); 

Замените запрос следующим:

 $query = mysql_query("INSERT INTO users VALUES('$username','$pass','$email')", `$Connect`); 

Существует небольшое изменение в mysql_real_escape_string mysqli_real_escape_string. синтаксис ниже

Синтаксисом mysql_real_escape_string будет mysql_real_escape_string ($ _ POST ['sample_var'])

Синтаксисом mysqli_real_escape_string будет mysqli_real_escape_string ($ conn, $ _ POST ['sample_var'])

используйте mysql_real_escape_string() вместо mysqli_real_escape_string()

вот так:

 $username = mysql_real_escape_string($_POST['username']);