0

大家好,我正在尝试使用 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");

}
4

5 回答 5

2

试试这个代码

$insert_qry = mysql_query("INSERT INTO LOGIN( ID, userName, password, FirstName, LastName, class, subject, grade) 值 ('".$stnumber."','".$userName."','".$password."','".$ FirstName."','".$LastName."','".$class."','".$subject."','".$grade."')") 或 die(mysql_error()) ;

于 2016-12-03T05:06:29.100 回答
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')

然而值得注意的是,您正在使用一组已弃用的函数。您应该研究使用MySQLiPDO以获得更好的性能和寿命。

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

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

于 2013-03-18T19:33:58.410 回答
0

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

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

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

如果您提供您的表结构,我们可能能够准确地确定您的 INSERT 语句中缺少/额外的列。

于 2013-03-18T19:35:02.183 回答