php-вставка в sql-ошибку

<?php $database="jayesh"; //database name $first=$_POST['first'];//this values comes from html file after submitting $last=$_POST['last']; $con = mysqli_connect("localhost","root" ,"");//for wamp 3rd feild is balnk if (!$con) { die('Could not connect: ' . mysqli_connect_error()); } mysqli_select_db("$database", $con); $query = "INSERT INTO info (first,last)VALUES ('$first','$last')"; mysqli_query($query); echo "<script type='text/javascript'>\n"; echo "alert('you are Succesflly registered');\n"; echo "</script>"; mysqli_close(); ?> 

Это мой код. Я получаю следующие ошибки. Помощь Plz. Thnx

Предупреждение: mysqli_select_db () ожидает, что параметр 1 будет mysqli, строка указана в C: \ wamp \ www \ Новая папка \ insert.php в строке 10

Предупреждение: mysqli_query () ожидает не менее двух параметров, указанных в C: \ wamp \ www \ Новая папка \ insert.php в строке 13

Предупреждение: mysqli_close () ожидает ровно 1 параметр, 0 заданный в C: \ wamp \ www \ Новая папка \ insert.php в строке 20

он требует 4 параметра: 1-й хозяин, 2-й пользователь, 3-й пароль и 4-й имя db mysqli_connect («localhost», «root», «», $ database);

Изменения –

 $con = mysqli_connect("localhost","root" ,"", $database); 

А также –

 mysqli_query($con, $query); 

Проблема в том, что mysqli_connect принимает все 4 параметра для соединения в формате;

 mysqli_connect("myhost", "myuser", "mypassw", "mybd"); 

Я исправил это в коде ниже.

 <?php // Set Database name; $database = "jayesh"; $con = mysqli_connect("localhost", "root", "", $database); if (!$con) { die('Could not connect: ' . mysqli_connect_error()); } $first = isset($_POST['first']) && strlen($_POST['first']) ? mysqli_real_escape_string($con, $_POST['first']) : '' ; $last = isset($_POST['last']) && strlen($_POST['last']) ? mysqli_real_escape_string($con, $_POST['last']) : '' ; $query = "INSERT INTO `info` (`first`, `last`) VALUES ('$first', '$last')"; mysqli_query($con, $query); echo "<script type='text/javascript'>\n"; echo "alert('you are Succesflly registered');\n"; echo "</script>"; mysqli_close($con); 

Некоторые заметки, которые я также изменил в вашем коде;

Переменные были небезопасными. Прямой ввод пользовательских данных в запрос является плохой практикой. Это может быть злонамеренно.

Чтобы решить эту проблему, я просто проверил, была ли установлена ​​опубликованная переменная и что она содержит данные (strlen). После этого вы бросаете его через mysqli_real_escape_string, чтобы избежать его и сделать его безопасным для вставки в базу данных;

Примечание. Поскольку mysqli_real_escape_string () требует, чтобы первым параметром являлось соединение с базой данных, его нужно было перенести за соединение с базой данных;

mysqli_close () требует, чтобы параметры подключения к базе данных были закрыты.

Это просто требует размещения $ con внутри него, поэтому он знает, какое соединение закрыть. В сложных системах, когда в игре играют несколько баз данных, отсутствие соединения может привести к ошибке

Примечание . Требование для первого параметра также распространяется на функцию mysqli_query (), которая также была изменена в коде выше.