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