输入错误列数与第1行的值计数不匹配

时间:2016-01-17 12:50:48

标签: php

<?php

$fname= $_REQUEST['firstname'];
$lname= $_REQUEST['lastname'];
$email= $_REQUEST['email'];
$pass = $_REQUEST['password'];

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect ');
}
$ins1 = "INSERT into signup values( '$fname' , '$lname', '$email','$pass')";


$select = mysql_select_db('ait', $conn);
if(! $select)
{
    die("<h2> incorrect input <h2>".mysql_error());
    header('location:index.php');

}

$in1 = mysql_query($ins1);
if (!$in1)
{
    die("<h2> incorrect input <h2>".mysql_error());
    header('location:signed.php');
}


mysql_close($conn);
header('location:signed.php');
exit;
?>

我正在制作一个注册表单并将其添加到数据库中,但我收到此错误&#34;错误的输入列数与第1行和第34行的值计数不匹配。我没有从这段代码中插入id,因为它是自动增量。

2 个答案:

答案 0 :(得分:0)

如果id是自动增量(并且它是您跳过的唯一列和表中的第一列),请使用:

$sql = "INSERT into signup values (null, '$fname' , '$lname', '$email','$pass')";

这样,您可以mysql填写id值,但仍需要指定它。

另一种方法是使用:

$sql = "INSERT into signup (col1, col2, col3, col4) values ('$fname' , '$lname', '$email','$pass')";

使用实际列名替换col*

答案 1 :(得分:0)

在查询中明确记下列的名称。

INSERT into signup(first_name,last_name,email,password) 
values( '$fname' , '$lname', '$email','$pass')

看看SQL注入。传递这样的参数并不是一种安全的方法。