2012-01-26 8 views
0

を動作させることはできません概要 - PHPを使用してMySQL DBテーブルにISO8601の日付を挿入したいISO 8601日 - ちょうど私が本当に簡単な問題を持っているが、私はちょうどそれを並べ替えることができない、イムは</p> <p>を苦労理由であるPHPとMySQLにかなり新しいことが

私はISO8601形式のタイムスタンプ(MeanPublicで)を持つtext.xmlファイルを持っています。つまり、YYYY-MM-DDTHH:MM:SS

私はPHPでファイルを読むことができますが、ISO8601の日付をエコーすることはできますが、MySQLに挿入すると0000-00-00 00:00:00と記録されます。私は日付の "T"をストリッピングしようとしましたが、それは動作しません。

私は、vchar、char、int、date、datetime、およびtimeのデータベーステーブルフィールドを設定しようとしましたが、何もしませんでした。しかし、手動の日付/時刻を挿入すると、それはokを挿入します。私はこれらの値

に後で日付/時刻のクエリを実行する必要があります。ここ

if(! $xml = simplexml_load_file('test.xml')) 
    { 
     echo 'unable to load XML file'; 
    } 
    else 
    { 
     foreach($xml as $MeanPublic) 
     { 
     $key = split(":", $MeanPublic->Key); 
     $meanvalue = $MeanPublic->Mean; 
     $FTSvalue = str_replace('T', ' ', $MeanPublic->Timestamp); 

mysql_query("INSERT INTO table (totwhout, wbstamp) VALUES ($meanvalue, $FTSvalue)"); 
     } 
+0

$ FTSValueの表示形式を教えてください。さらに良いことに、クエリ文字列全体をエコーするとどうなりますか? –

答えて

2

あなたはおそらくすでにこれをチェックしましたコードだが、あるため

それは、日付/時刻として記録されますことが重要ですクエリを構築するときにタイムスタンプ値を一重引用符で囲みますか?投稿されたコードから判断すると、あなたのようには見えません - MySQLはTIMESTAMPの値が文字列のように渡されることを期待しています。

+0

こんにちは、申し訳ありませんが、どのように見えるでしょうか?あなたがコードで見ているのは、私が使っているものです。 – user1171700

+0

クエリ文字列は次のように構成されます。 mysql_query( "INSERT INTOテーブル(totwhout、wbstamp)VALUES($ meanvalue、 '$ FTSvalue')"); – hatboyzero

+0

それを信じてはいけません!どのように私はそれが誰の推測であるのか分かりませんでした。 – user1171700

1

この問題はDATE/TIME形式ではないようです。 SQLでは文字列を引用符で囲む必要があります。

mysql_query("INSERT INTO table (totwhout, wbstamp) VALUES ('$meanvalue', '$FTSvalue')"); 
関連する問題