2012-04-04 54 views
1

在這裏,我得到這個錯誤是我的代碼錯誤:列數不爲1的行

if(isset($_POST['submit'])) 
    { 
    $projTit=mysql_escape_string($_POST['projecttitle']); 
    $projCat=mysql_escape_string($_POST['projectcategory']); 
    $budget=intval(mysql_escape_string($_POST['budget'])); 
    $description=mysql_escape_string($_POST['editor1']); 
    $query=sprintf("insert into projects value('%s','%s','%s',%d)", 
      $projTit,$description,$projCat,$budget); 
    if (!mysql_query($query)){ 
     die('Error: ' . mysql_error()); 
     } 
     echo '<p class="record">Your Record has been Added<p>'; 
    } 

    ?> 

我試圖寫%d在'',但仍然沒有工作匹配值計數。

+0

什麼是您的表格結構?如果您未指定列集,則必須爲所有列提供值。 – Interrobang 2012-04-04 06:51:12

+0

@Interrobang對不起,我不明白什麼是列設置讓我顯示我的表格結構 – 2012-04-04 06:54:01

+0

對不起,我的意思是如果你不指定你插入哪些列(使用語法像'INSERT INTO table(col1,col2, col3)VALUES(val1,val2,val3)')那麼你必須指定* all *列的值:) – Interrobang 2012-04-04 06:55:04

回答

4

您的表格有五列。但是,您沒有提供Project_Id列的值。這給你提到的錯誤。

我知道你沒有提供價值,因爲它可能是自動增量的PRIMARY KEY。要告訴MySQL你有意不傳遞該列的值,你應該添加NULL作爲第一個值。

value(NULL, '%s','%s','%s',%d) 

但是,你真的應該明確你的名字在日後添加新列,其中插入到萬一列。

INSERT INTO projects (col1, col2, col3, col4) value ('%s','%s','%s',%d) 
+0

感謝您的幫助,它正在工作。 – 2012-04-04 07:10:44

1

嘗試命名要填補像

insert into projects (col1, col2, col3) values (...) 
+0

是的,我可以添加值,謝謝你的幫助。 – 2012-04-04 07:07:17

2

你應該真的指定列名,或者如果您在以後添加一列您的應用程序將打破列,即使它有一個可用的默認值:

INSERT INTO projects 
    (Project_Title, Project_Description, Project_Category, Project_Budget) 
VALUES 
    (...) 

特別是因爲你有一個auto_increment ID列它m感覺;否則你總是不得不在你的查詢中指定它爲NULL

最簡單的(也是最醜陋的)FIX因此將是:

$query=sprintf("insert into projects value (null, '%s','%s','%s',%d)", 
     $projTit,$description,$projCat,$budget); 

良好的解決將是這樣的:

$query = sprintf(" 
    INSERT INTO projects 
     (Project_Title, Project_Description, Project_Category, Project_Budget) 
    VALUES 
     ('%s', '%s', '%s', %d) 
    ", $projTit,$description,$projCat,$budget); 

順便說一句,可以考慮使用PDO - 那麼你可以使用的東西類似於格式字符串,但不必處理轉義。

+0

錯了。 「在這種情況下,VALUE是VALUES的同義詞,它既不涉及值列表的數量,也不管是否存在單個值列表或多個列表。」 http://dev.mysql.com/doc/refman/5.5/en/insert.html – Interrobang 2012-04-04 07:01:16

+0

@Interrobang:更新。 – ThiefMaster 2012-04-04 07:02:29

+0

通過不指定列名稱並將值更改爲值仍然不起作用。 – 2012-04-04 07:03:00

相關問題