简体   繁体   English

PHP / MySQL错误1054,用于表单注册

[英]PHP/MySQL Error 1054 for form registration

I have a registration form on my website and I am getting Error 1054 when a person tries to register. 我的网站上有一张注册表,当有人尝试注册时出现Error 1054

The PHP code is: PHP代码为:

$con=mysql_connect("server","database","password");
// Check connection
if (!$con)
{
    echo "Failed to connect to MySQL" . mysql_errno();
}

$sql="INSERT INTO database.table (User_ID, Name, Email, Telephone, MyPassword)
VALUES
(NULL,'$_POST[name]','$_POST[email]','$_POST[telephone]','$_POST[mypassword]')";

if (!mysql_query($sql,$con))
{
    die('Error: you fail'.mysql_errno());
}
$User_Id= mysql_insert_id();

$sql="INSERT INTO database.table (Address1, Address2, Address3, Address4)
VALUES
('$_POST[address1]','$_POST[address2]','$_POST[address3]','$_POST[address4]')";
//Inserts address into Address table


if (!mysql_query($sql,$con))
{
    die('Error: you failed' . mysql_errno());
}
echo "Thank you for registering with Market Buddy";

mysql_close($con);

I put the code into an online compiler to get a more detailed error description and for this line: 我将代码放入在线编译器中,以获取更详细的错误描述,并为此行:

('$_POST[address1]','$_POST[address2]','$_POST[address3]','$_POST[address4]')";

It gives me the following error: 它给了我以下错误:

Syntax error, unexpected t_encapsed and whitespace, expecting T_String or T_Variable or T_num_string. 语法错误,意外的t_encapsed和空格,预期为T_String或T_Variable或T_num_string。

Strictly First: Use mysqli_* instead of mysql_*, your query have sql injection threat possiblity, use prepared statement query... 严格首先:使用mysqli_ *代替mysql_ *,您的查询具有sql注入威胁的可能性,请使用准备好的语句查询...

Error 1054: this type of error mostly occur when the column name is not vaild, check your table as in my sense. 错误1054:此类错误通常在列名无效时发生,请按照我的观点检查表。

You must use braces {}, when access to the array: 访问数组时,必须使用大括号{}:

$sql="INSERT INTO database.table (Address1, Address2, Address3, Address4)
VALUES
('{$_POST["address1"]}','{$_POST["address2"]}','{$_POST["address3"]}','{$_POST["address4"]}')";

Edit: Error 1054 means bad column - are you sure, that mentioned columns exists in your table? 编辑:错误1054意味着坏列-您确定,表中存在提到的列? http://dev.mysql.com/doc/refman/5.0/es/error-handling.html#error_er_bad_field_error http://dev.mysql.com/doc/refman/5.0/es/error-handling.html#error_er_bad_field_error

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

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