Предупреждение: mysqli_error () ожидает ровно 1 параметр, 0 заданный в моем файле register.php

Я следил за кодом точно так же, как и в w3schools.com … но все же я получаю вышеуказанную ошибку, и таблица базы данных также не обновляется.

Мой код html и php выглядит следующим образом:

<form action="register.php" method="post"> <select name="title" size="1"> <option>Mr.</option> <option>Ms.</option> <option>Prof.</option> <option>Dr.</option> </select> <label class="label">Given Name: <input name="givenname" type="text" value="Enter Your First Name" maxlength="30" /></label> <label class="label">Surname: <input name="surname" type="text" /></label> <label class="label">Address: <input name="address" type="text" maxlength="80" /></label> <label class="label">Phone No: <input name="phoneno" type="text" /></label> <label class="label">Email ID: <input name="emailid" type="text" /></label> <label class="label">Fax: <input name="fax" type="text" /></label> <label class="label">Pincode: <input name="pincode" type="text" /></label> <label class="label">Country: <input name="country" type="text" /></label> <input name="submit" type="submit" /> </form> <?php $con=mysqli_connect("my_Ipaddress","abcd","abcd"); //database connection if (mysqli_connect_errno()) { echo "Failed to connect to Database...There must be some error! We are working on it!!" . mysqli_connect_error(); } $sql="INSERT INTO Registrations (Title, Given Name, Surname, Address, Phone No, Email ID, Fax, Pincode, Country) VALUES ('$_POST[title]','$_POST[givenname]','$_POST[surname]','$_POST[address]','$_POST[phoneno]','$_POST[emailid]','$_POST[fax]','$_POST[pincode]','$_POST[country]')"; if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error()); } echo "1 record added"; mysqli_close($con); ?> 

Я получил вашу ошибку, вот она

Синтаксис mysqli_error () неверен.

+ Изменить

 die('Error: ' . mysqli_error()); 

в

 die('Error: ' . mysqli_error($con)); 

Проблема в том, что некоторые из ваших полей содержат промежутки между ними. Чтобы избежать синтаксической ошибки, эти поля должны быть обернуты обратными окнами,

 INSERT INTO Registrations (Title, `Given Name`, Surname, Address, `Phone No`, `Email ID`, Fax, Pincode, Country) VALUES(...) 

В качестве побочного элемента запрос уязвим с помощью SQL Injection если значение (значения) переменных было получено извне. Пожалуйста, ознакомьтесь с приведенной ниже статьей, чтобы узнать, как ее предотвратить. Используя PreparedStatements вы можете избавиться от использования одинарных кавычек вокруг значений.

  • Как предотвратить SQL-инъекцию в PHP?

У вас есть пробелы между именами столбцов, а $_POST требует цитаты в имени столбца.

 $sql="INSERT INTO Registrations (Title, {Given Name}, Surname, Address, {Phone No}, {Email ID}, Fax, Pincode, Country) VALUES ('".$_POST['title']."','".$_POST['givenname']."','".$_POST['surname']."','".$_POST['address']."','".$_POST['phoneno']."','".$_POST['emailid']."','".$_POST['fax']."','".$_POST['pincode']."','".$_POST['country']."')"; 

Использовать этот тип запроса и пробела нельзя в поле mysql fieldname.

 $sql="INSERT INTO Registrations (Title, Given_Name, Surname, Address, Phone_No, Email_ID, Fax, Pincode, Country) VALUES ('".$_POST[title]."','".$_POST[givenname]."','".$_POST[surname]."','".$_POST[address]."','".$_POST[phoneno]."','".$_POST[emailid]."','".$_POST[fax]."','".$_POST[pincode]."','".$_POST[country]."')"; 

Попробуй это:

 die(mysqli_error($conn)); 

Пример:

 $sql= "delete FROM purchage_book WHERE id='$id'"; $rs=mysqli_query($conn,$sql)or die(mysqli_error($conn));