0

こんにちはすべて私はhtmlフォームを使用してデータベースにいくつかの値を挿入しようとしています、それは私が理解していない行1の値の数と列数のエラーを一致させません、ia php plzの初心者は誰でも私を助けることができますか?よろしく

phpコード

<?
if(isset($_POST['submit'])){

      $userName = $_POST["userName"];
      $FirstName =$_POST["FirstName"];
      $LastName =$_POST["LastName"];
  $stnumber = $_Post["ID"];
  $class = $_POST["class"];
  $subject = $_POST["subject"];
  $grade = $_POST["grade"];
  $password = $_POST["password"];

} else{

    echo("wronggggggg nameeeeeeeeeeeee");
}


$stnumber = mysql_escape_string ("ID");
$userName = mysql_escape_string ("userName");
$password = mysql_escape_string ("password");
$FirstName = mysql_escape_string ("FirstName");
$LastName = mysql_escape_string ("LastName");
$class = mysql_escape_string ("class");
$subject = mysql_escape_string ("subject");
$grade = mysql_escape_string ("grade");







mysql_query ("INSERT INTO LOGIN
 VALUES ('$stnumber','$userName','$password','$FirstName','$LastName','$stnumber','$class','$subject','$grade')") or die(mysql_error());





 $sql = mysql_query("SELECT * FROM LOGIN WHERE userName ='$userName'");
//$row = mysql_query($sqlUser);
//$result = mysql_query($sql, $connection);

if(mysql_num_rows ($sql)> 0){
    echo   ("Upload sucessful");
    } else
{
    echo("Upload fail");

}
4

5 に答える 5

0

テーブルに列がいくつあるかを確認してください。挿入する数と同じ数、つまり9(自動インクリメントを差し引いた数)である必要があります。

于 2013-03-18T19:32:17.437 に答える
0

に使用するフィールドを指定するか、すべてのフィールドにINSERTデータを正しく挿入する必要があります。

次のようにクエリを編集することをお勧めします (フィールドの名前を想定しています)。

INSERT INTO `LOGIN`
(`stnumber`, `username`, `password`, `forename`, `surname`, `stnumber`, `class`, `subject`, `grade`)
VALUES 
('$stnumber','$userName','$password','$FirstName','$LastName','$stnumber','$class','$subject','$grade')

ただし、非推奨の関数セットを使用していることに注意してください。パフォーマンスと寿命を向上させるために、 MySQLiまたはPDOの使用を調査する必要があります。

于 2013-03-18T19:33:49.170 に答える
0

この行で:

mysql_query ("INSERT INTO LOGIN
VALUES ('$stnumber','$userName','$password','$FirstName','$LastName','$stnumber','$class','$subject','$grade')") or die(mysql_error());

あなたは$stnumber2回使用しています。これが意図されているかどうかはわかりませんが、おそらくそこにあるはずのない余分な値が追加されたと思います.

于 2013-03-18T19:33:58.410 に答える
0

INSERTステートメントに列名を含めて、どの値がどの列に挿入されるかを明示的に定義するのが最善だと思います。例えば:

INSERT INTO `table` ( `column_1`, `column_2` )
VALUES ( 'value_1', 'value_2' );

v5.5.0 の時点で非推奨となる呼び出しに代わる、はるかに安全なPHP PDOを確認することも検討してください。mysql_query

テーブル構造を提供していただければ、INSERT ステートメントに含まれていない/余分な列を正確に特定できる場合があります。

于 2013-03-18T19:35:02.183 に答える