2012-09-15 67 views
0

我創建了文本上傳功能。當我嘗試將文本發佈到數據庫時,錯誤只是說:「列計數與第1行的值計數不匹配」。我的代碼如下所示:上傳文本時,列計數與第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

表'news'的結構是什麼? – andrewsi

+0

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

+0

您需要在查詢中的值之前添加字段 – StaticVariable

回答

0

您的表格插入的字段數量少於實際字段數。爲了防止出現這種錯誤,在sql中明確指出要插入的字段總是一個好習慣。像這樣:

$insert = mysql_query("INSERT INTO news(field1, field2, field3) VALUES (... 
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)."' 

你需要一個日期字段添加到您的表格,或從查詢刪除它。

0

嘗試: -

但要記住你添加字段名(字段1,字段2,字段3)中插入查詢。

設置主鍵自動增量數據庫表中的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!"); 
}  
?> 
相關問題