上载文本时,列数与第1行的值计数不匹配

时间:2012-09-15 14:53:39

标签: php mysql text

我已经创建了一个文本上传功能。当我尝试将文本发布到数据库时,错误只是说:“列数与第1行的值计数不匹配”。我的代码如下所示:

<?php

if (isset($_REQUEST['name']) && isset($_REQUEST['body']) && strlen($_REQUEST['name']) > 0 && strlen($_REQUEST['body']) > 0) {
    //get data
    $title = $_REQUEST['name'];
    $body = $_REQUEST['body'];

    mysql_connect("Server","username","password") or die(mysql_error());
    mysql_select_db("database") or die(mysql_error());

    $date = date("Y-m-d");

    //insert data
    $insert = mysql_query("INSERT INTO news VALUES ('','".mysql_real_escape_string($title)."','".mysql_real_escape_string($body)."','".mysql_real_escape_string($date)."')") or die(mysql_error());

    die("Your text has been posted!");
?>

我做错了什么?

3 个答案:

答案 0 :(得分:0)

您插入的字段少于或多于表中实际字段数。为了防止出现这种错误,在sql中明确指出要插入的字段始终是一个好习惯。像这样:

$insert = mysql_query("INSERT INTO news(field1, field2, field3) VALUES (...

答案 1 :(得分:0)

正如尼尔森所说 - 你写错了字段。你的表格结构如下:

id - int(11) title - varchar(100) body - varchar(1000)

您正在添加:

id - ''
title - '".mysql_real_escape_string($title)."'
body - '".mysql_real_escape_string($body)."' 
date - '".mysql_real_escape_string($date)."'

您需要在表格中添加日期字段,或从查询中删除它。

答案 2 :(得分:0)

试一试: -

但请记住在插入查询时添加字段名称(field1,field2,field3)

在数据库表格中使用自动增量 ID字段设置主键

<?php


$mytitle = $_REQUEST['name'];
$mybody = $_REQUEST['body'];


if (isset($mytitle) &&  strlen($mytitle) > 0  && isset($mybody) && strlen($mybody) > 0) {
    //get data


    mysql_connect("Server","username","password") or die(mysql_error());
    mysql_select_db("database") or die(mysql_error());

    $date = date("Y-m-d");

    //insert data
    $insert = mysql_query("INSERT INTO news (field1, field2, field3) VALUES ('".mysql_real_escape_string($mytitle)."','".mysql_real_escape_string($mybody)."','".mysql_real_escape_string($date)."')") or die(mysql_error());

    die("Your text has been posted!");
}    
?>