0

私のウェブサイトに登録フォームがあり、登録Error 1054しようとすると取得します。

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);

より詳細なエラーの説明を取得するために、コードをオンライン コンパイラに入れました。

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

次のエラーが表示されます。

構文エラー、予期しない t_encapsed と空白、T_String、T_Variable、または T_num_string が必要です。

4

2 に答える 2

0

厳密に最初に: mysql_* の代わりに mysqli_* を使用します。クエリには SQL インジェクションの脅威の可能性があり、準備されたステートメントクエリを使用します...

エラー 1054: このタイプのエラーは、ほとんどの場合、列名が有効でない場合に発生します。私の感覚では、テーブルを確認してください。

于 2013-09-10T11:36:06.413 に答える
-1

配列にアクセスするときは、中かっこ {} を使用する必要があります。

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

編集: エラー 1054 は不正な列を意味します - 言及された列がテーブルに存在することを確認しますか? http://dev.mysql.com/doc/refman/5.0/es/error-handling.html#error_er_bad_field_error

于 2013-09-10T11:26:21.937 に答える