2012-03-14 107 views
0

我有一個問題,現在一直在困擾着我。我不知道我是盲人還是笨蛋,但我有一個嵌入在PHP頁面中的MySQL查詢。當它執行時,沒有任何反應!這是查詢:PHP處理MySQL INSERT INTO命令

INSERT INTO objective (IdUser, CreationYear, Description) 
VALUES ('$idFor','$date','$textAreaObjective1a') 

我決定回聲查詢出來,它會產生我需要的全部文本行。當我複製並直接將行粘貼到MySQL時,它會執行查詢將行添加到數據庫中。

INSERT INTO objective (IdUser, CreationYear, Description) 
VALUES ('2', '20130314', 'hello 1') 

編輯下面是用於插入的PHP代碼 -

$objectiveCreation = mysql_query(" 
    INSERT INTO objective (IdUser, CreationYear, Description) 
    VALUES ('$idFor','$date','$textAreaObjective1a')"); 

所以,問題是,爲什麼不能PHP的處理命令?我已經嘗試將所有值放在引號中,並刪除所有引號。發出命令然後複製並粘貼它手動解析它並添加數據,以便查詢似乎很好。我在查詢後面添加了mysql_error()命令,並且它返回以下錯誤:

Unknown column 'CreationYear' in 'field list' 

該列在數據庫中。下面是結構:

IdObjective   int(10) 
    IdUser    int(10) 
    PercenOfComp  float 
    CreationYear  date    
    Description   text 
    Status    varchar(45) 
+0

難道說這不是'objective'表? – Nanne 2012-03-14 10:20:18

+0

它可以是來自另一個數據庫的「客觀」表嗎? – Devart 2012-03-14 10:23:53

+0

-1爲「爲什麼不能php處理命令」 – 2012-03-14 11:20:09

回答

1

你嘗試

INSERT INTO `objective` (`IdUser`, `CreationYear`, `Description`) VALUES ('2', '20130314', 'hello 1') 

也可以打開phpmyadmin的和(vieuwing表時的水平菜單欄)使用插入功能,並填寫以下字段按去如圖所示覆制查詢。

+0

返回另一個錯誤: 您的SQL語法有錯誤;請檢查與您的MySQL服務器版本對應的手冊,以找到在第1行''objective'(IdUser,CreationYear,Description)'附近使用的正確語法 – Jahoe 2012-03-14 10:23:12

+0

您使用了反引號還是單引號?這看起來不像運行該查詢的合適錯誤。請使用您用來執行此查詢的PHP代碼更新您的問題。 – nnichols 2012-03-14 10:26:58

+0

$ objectiveCreation = mysql_query(「INSERT INTO'objective'('IdUser','CreationYear','Description') VALUES('$ idFor','$ date','$ textAreaObjective1a')」); 現在仍然回到最初的錯誤。 – Jahoe 2012-03-14 10:30:57

1

嘗試$dateToBeInserted=date("Y-m-d", $date);

既然你定義date作爲類型,MYSQL希望它是這樣的:2013-03-14

+0

DATE數據類型不需要時間,因此$ dateToBeInserted的時間部分將被截斷。 – nnichols 2012-03-14 10:30:15

+0

@nnichols編輯我的回答 – jmishra 2012-03-14 10:32:32

+0

當插入到日期字段時,它將允許任何以下格式 - 「VALUES(20120311),('20120312'),('2012-03-13')' – nnichols 2012-03-14 10:45:59

0

我已經運行查詢,這對我的作品完美。你可以試試這個太 - 使用xampp-

enter image description here

由於「CreationYear」字段

INSERT INTO `objective` (`IdUser` , `CreationYear` , `Description`) VALUES (2, '20130314', 'hello 1') ; 

它會顯示在phpMyAdmin類似下面是日期類型,因此它會自動將您的數據插入到表格中之前轉換爲默認的MySQL日期格式。但你仍然可以嘗試以下 -

INSERT INTO objectiveIdUserCreationYearDescription)VALUES(2, '2013年3月14日', '你好1');

您也可以嘗試以下方法來自動格式化日期MySQL查詢裏面 -

INSERT INTO `objective` (`IdUser` , `CreationYear` , `Description`) VALUES ('2', DATE(20130314) , 'hello 1');