繁体   English   中英

php注册表

[英]php registration form

我所有我试图使用html表单将一些值插入数据库,它给我的列计数的错误与第1行的值计数不匹配 ,我不明白,我是一个新的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");

}

试试此代码

$ insert_qry = mysql_query(“INSERT INTO LOGINIDuserNamepasswordFirstNameLastNameclasssubjectgrade )VALUES('”。$ stnumber。“','”。$ userName。“','”。$密码 “ ''”,$名字。 “ ''”,$姓氏。 “ ''”。$类。 “ ''”。$主题。 “ ''”。$档次。'“) “)或死(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')

但值得注意的是,您使用的是一组已弃用的函数。 您应该调查MySQLiPDO的使用,以获得更好的性能和更长的使用寿命。

在这一行:

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开始,将不推荐使用。

如果您提供表结构,我们可能能够确切地从INSERT语句中确定哪些列丢失/额外。

暂无
暂无

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

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