插入语句的列计数与值计数 - PHP / MySQL

时间:2013-09-29 17:03:49

标签: php mysql sql

我正在建立一个员工数据库,但似乎遇到了一个有趣的问题。 当我运行查询以添加新用户/员工时,我收到错误:

  

列数与第1行的值计数不匹配

根据我的研究,这似乎是插入更多/更少值的错误,而不是插入语句示例的第一部分中声明的值:

  

INSERT INTO表(col1,col2)VALUES(val1,val2,val3)

事情是,我查看了我的查询,列和值完全匹配(计数)。我甚至在查询中查找了诸如缺少引号,逗号等的内容。

这是我的代码(查询):

$db->query("INSERT INTO userdata (
                Username,
                Email,
                Phone,
                Password,
                FirstName,
                LastName,
                Address,
                City,
                State,
                Zip,
                JobTitle,
                UserGroup,
                JobStatus,
                Points,
                Status,
                BirthDate,
                HireDate,
                HourlyRate,
                DateAdded,
                SSN
            ) VALUES (
                '$Username',
                '$Email',
                '$Phone',
                '$Password',
                '$FirstName',
                '$LastName',
                '$Address',
                '$City',
                '$State',
                '$Zip',
                '$JobTitle',
                '$Group',
                '$JobStatus',
                0,
                '$Status',
                '$BirthDate',
                '$HireDate',
                '$HourlyRate'
                '$TodaysDate',
                '$SSN'
            )") or die(mysqli_error($db));

有些注意事项:

  • 这并非表格中的所有列都插入了数据(我认为可以这样做,自动递增ID等内容将自行填充,其他内容将留空)

    < / LI>
  • 从我所做的变量转储中,所有这些变量都是有效的。

我对此感到很困惑,任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

再次检查以下部分:

    INSERT INTO userdata(...,
                    JobStatus,
                    UserGroup,
                    Points,
                    UserGroup,
                    Status,
                    .....
            ,)VALUES(...,
                   $JobStatus',
                   0,
                  '$Group',
                   '$Status',
                   ......
                   )

在值(,?,?,?)中,在jobstatus之后,应该有UserGroup,然后是Points。而UserGroup出现了两次。