php registration form


php registration form

嗨,我

正在尝试使用 html 表单将一些值插入数据库,它给了我列计数与第 1 行的值计数不匹配的错误,我不明白,我是 PHP 的新手,请谁能帮我?问候

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

试试这段代码

$insert_qry = mysql_query("插入LOGIN ( IDuserNamepasswordFirstNameLastNameclasssubjectgrade ( 值

('".$stnumber."','".$userName."','".$password.",".$FirstName.",".$LastName.",".$class.",".$subject.",".$grade."("( 或死亡(mysql_error(((;

检查表中有多少列。它应该是您要插入的数量的确切数字,即 9(减去任何自动增量(。

您必须指定要用于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的使用,以获得更好的性能和寿命。

在这一行中:

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

你用了两次$stnumber,我不知道这是否是有意的,但我猜这可能增加了一个不应该存在的额外价值。

我发现最好在 INSERT 语句中包含列名,以明确定义将哪些值插入到哪列中。 例如:

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

您也可以考虑查看 PHP PDO,因为它是比 mysql_query 调用更安全的替代方案,从 v5.5.0 开始,将弃用 PHP PDO。

如果您提供表结构,我们也许能够准确识别您的 INSERT 语句中缺少/多余的列。