2012-03-14 8 views
0

私はしばらくの間私を悩ませている問題がありました。私は盲目的であるか愚かなのか分かりませんが、私はPHPのページに埋め込まれたMySQLのクエリを持っています。実行すると、何も起こりません!これはクエリです:PHPがMySQL INSERT INTOコマンドを処理しています

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

私はクエリをエコーすることにしました。私は必要なテキスト行を生成します。行をコピーしてMySQLに直接貼り付けると、クエリが実行され、データベースに行が追加されます。

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

だから問題は、なぜコマンドを処理することはできませんPHPされる - ここで

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

EDITは、挿入のために使用する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

+0

別のデータベースから 'objective'テーブルにすることはできますか? – Devart

+0

-1 "なぜPHPがコマンドを処理できないのですか" –

答えて

1

は、あなたはあなたにも開くことができphpmyadminのと(表をvieuwingとき、水平メニューバーに)挿入機能を使用し

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

を試してみましたし、フィールドに入力します。ここでは構造があります図のようにクエリをコピーします。

+0

別のエラーを返します。 SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックして、正しい構文が "目的"(IdUser、CreationYear、Description)の近くで使用するようにしてください。 '1行目 – Jahoe

+0

バッククォートやシングルクォートを使いましたか?それはそのクエリを実行するための適切なエラーのようには見えません。このクエリを実行するために使用しているPHPコードで質問を更新してください。 ( '$ idFor'、 '$ date'、 '$ textAreaObjective1a') "); – nnichols

+0

$ objectiveCreation = mysql_query(" IDUser'、 'CreationYear'、' Description') VALUES まだ初期エラーが返ってきました。 – Jahoe

1

あなたがタイプとしてdateを定義しているので$dateToBeInserted=date("Y-m-d", $date);

を試してみて、MYSQLは、このようなことを期待し:私は私のために完璧に動作し、クエリを実行している2013-03-14

+0

DATEデータ型に時間がかからないため、$ dateToBeInsertedの時間部分が切り捨てられます。 – nnichols

+0

@nnicholsは私の答えを編集しました – jmishra

+0

DATEフィールドに挿入すると、 'VALUES(20120311)、( '20120312')、( '2012-03-13')' – nnichols

0

。あなたも、このいずれかを試すことができます - それは自動的に変換されますので、「CreationYear」フィールドは、Date型のある通り

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

をそれはxampp-

enter image description here

を使用してphpMyAdminの中に以下のようなものが表示されますデータをMySQLのデフォルト日付形式に変換してからテーブルに挿入します。しかし、それでもまだ、あなたは試すことができ、次の -

INSERT INTO objectiveIdUserCreationYearDescription)VALUES(2、 '2013年3月14日'、 'ハロー1');

また、MySQLのクエリ内のオートフォーマットの日付に次のことを試すことができます -

INSERT INTO `objective` (`IdUser` , `CreationYear` , `Description`) VALUES ('2', DATE(20130314) , 'hello 1'); 
関連する問題