0

以前は正常に機能していた登録フォームを作成しましたが、コードを変更した後、「エラー: 列数が行 1 の値数と一致しません」というエラーが表示されます。

<?php
$host = "localhost";
$user = "root";
$db_name= "login_stock";
$pass= "usbw";

$con = mysql_connect($host, $user, $pass);

if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("login_stock", $con);
$name=mysql_real_escape_string($_POST['name']); //This value has to be the same as in the HTML form file
$password=mysql_real_escape_string($_POST['password']); //This value has to be the same as in the HTML form file
$sql="INSERT INTO member_login (id,Name,Password, Allowance) VALUES (NULL,'$name','$password, 100000')";
if (!mysql_query($sql,$con)) {
die('Error: ' . mysql_error());
}
echo "The form data was successfully added to your database.";
mysql_close($con);
?>

データベース内の id は、自動インクリメント int と主キーです。ただし、ユーザーは登録時に ID を入力する必要はありません。

このエラーを修正する最善の方法と考えられるものは何ですか!

ありがとうございます!

4

2 に答える 2

2

間違った 以外は、列リストから'削除できます。id

INSERT INTO member_login (Name,Password, Allowance) VALUES ('$name','$password', 100000)

mysql_SQL インジェクションを防ぐために、関数の使用をやめ、準備済みステートメントを使用する必要があります。

于 2013-05-01T18:11:16.840 に答える
2
INSERT INTO member_login (id,Name,Password, Allowance) 
VALUES (NULL,'$name','$password, 100000');

... 3 つの値しかありません (3 番目は string'$password, 100000'です)。あなたが言いたいのは、おそらくパスワードのみを引用することです。

INSERT INTO member_login (id,Name,Password, Allowance) 
VALUES (NULL,'$name','$password', 100000);
于 2013-05-01T18:12:17.437 に答える