简体   繁体   English

错误:“字段列表中的未知列”'MySQL错误

[英]Error: Unknown column '' in 'field list' MySQL error

I am unable to insert data. 我无法插入数据。 The error is: 错误是:

Error: Unknown column '' in 'field list' 错误:'字段列表'中的未知列''

It is simpy an HTML form page and data is taken by the user to insert in a database dB. 它是一个简单的HTML表单页面,用户可以将数据插入到数据库dB中。 Help is truly required. 真的需要帮助。 I am unable to get the error things. 我无法得到错误的东西。 I am a newbie. 我是新手。

<?php
$con=mysqli_connect("localhost", "root", "root","dB");
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$enrollno=$_POST['enrollno'];
$fname=$_POST['fname'];
$lname=$_POST['lname'];
$fathername=$_POST['fathername'];
$coursename=$_POST['coursename'];
$yearsem=$_POST['yearsem'];
$facultyno=$_POST['facultyno'];
$hostel=$_POST['hostel'];
$roomno=$_POST['roomno'];
$email=$_POST['email'];
$mobileno=$_POST['mobileno'];
$peradd=$_POST['peradd'];
$district=$_POST['district'];
$state=$_POST['state'];
$amount=$_POST['amount'];
$pwd=$_POST['pwd'];
$tnc=$_POST['tnc'];

$sql="INSERT INTO registration (enrollno, fname, lname, fathername, coursename, yearsem, facultyno, hostel, roomno, email, mobileno, peradd, district, state, amount, pwd, tnc) VALUES ('$enrollno',`$fname`,`$lname`,`$fathername`,`$coursename`,`$yearsem`,`$facultyno`,`$hostel`,`$roomno`,`$email`,`$mobileno`,`$peradd`,`$district`,`$state`,`$amount`,`$pwd`,'$tnc')";

if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
echo "1 record added";

mysqli_close($con);
?>

You are using backticks[ used for columns ] for variables. 您正在使用反引号[ 用于列 ]作为变量。 Make use of single quotes. 使用单引号。 Try the below code 请尝试以下代码

$sql="INSERT INTO registration (enrollno, fname, lname, fathername, coursename, yearsem, facultyno, hostel, roomno, email, mobileno, peradd, district, state, amount, pwd, tnc) VALUES ('$enrollno','$fname','$lname','$fathername','$coursename','$yearsem','$facultyno','$hostel','$roomno','$email','$mobileno','$peradd','$district','$state','$amount','$pwd','$tnc')";

The values in the INSERT INTO query must be enclosed with single quotes ' not backticks and not a mixture of both. INSERT INTO查询中的值必须用单引号'而不是反引号括起来,而不是两者的混合。 Backticks can only be used on the field and table name. 反引号只能用于字段和表名。

$sql="INSERT INTO registration (enrollno, fname, lname, fathername, coursename, yearsem, facultyno, hostel, roomno, email, mobileno, peradd, district, state, amount, pwd, tnc) VALUES ('$enrollno','$fname','$lname','$fathername','$coursename','$yearsem','$facultyno','$hostel','$roomno','$email','$mobileno','$peradd','$district','$state','$amount','$pwd','$tnc')";

Side note: your code is vulnerable to SQL Injection . 旁注:您的代码容易受到SQL注入攻击。 Consider using a Prepared Statement with bound parameters instead of concatenating user input into the query. 考虑使用带有绑定参数的Prepared语句 ,而不是将用户输入连接到查询中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM