2012-03-14 39 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');