0

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

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

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

插入表 (col1, col2) 值 (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 之类的内容将自行填写,而其他列将留空)

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

我对此感到非常困惑,任何帮助将不胜感激。

4

1 回答 1

0

再次检查以下部分:

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

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

于 2013-09-29T17:08:51.350 回答