0

我创建了一个文本上传功能。当我尝试将文本发布到数据库时,错误只是说:“列计数与第 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!");
?>

我做错了什么?

4

3 回答 3

0

您插入的字段少于或多于表中的实际字段数。为防止此类错误,最好在 sql 中明确指出您要插入的字段。像这样:

$insert = mysql_query("INSERT INTO news(field1, field2, field3) VALUES (...
于 2012-09-15T14:58:00.463 回答
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)."'

您需要将日期字段添加到表中,或将其从查询中删除。

于 2012-09-15T15:01:21.737 回答
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!");
}    
?>
于 2012-09-15T15:02:57.260 回答