2011-03-10 6 views
0

次のコードは、テストテーブルのdatetime、float、decimalなどのフィールドがすべてPHPの文字列として返されることを示しています。PHPはMySQLの結果(すべてが文字列になります)のフィールドデータ型を失います

$sql = 'SELECT * FROM table LIMIT 1'; 
$result = mysql_query($sql) or die(mysql_error()); 
$row = mysql_fetch_array($result); 
var_dump($row); 

なぜPHPはMySQLデータベースのフィールドに適切なデータ型を認識して使用しないのですか?

私のテストシステムは、PHP 5.3.2とMySQL 5.1.44でMac OS Xを実行しています。 私は一般にUTF8でエンコードされたデータを持ち、InnoDBとMyISAMの両方のデータベースタイプを試しました。

+0

出力はどのように見えますか?これはJSONと何が関係していますか? – Gumbo

答えて

2

PHPは、本質的に文字列として以外の方法でのMySQLのDATETIMEフィールドを扱っていません。 PHPのdate()関数を見て、あなたのニーズに合うようにフォーマットする必要があります。

+1

また、 'DATETIME'をUNIXのタイムスタンプに変換するには、SQLの' UNIX_TIMESTAMP(DATETIMEFIELD) 'かPHPの' strtotime' –

関連する問題