【问题标题】:PHP loses field datatype for MySQL results (everything becomes string)PHP 丢失 MySQL 结果的字段数据类型(一切都变成字符串)
【发布时间】:2011-07-13 03:05:32
【问题描述】:

以下代码显示我的测试表中的日期时间、浮点数和小数等字段在 PHP 中都以字符串形式返回。

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

为什么 PHP 不能识别和使用来自 MySQL 数据库的字段的正确数据类型?

我的测试系统在 Mac OS X 上运行 PHP 5.3.2 和 MySQL 5.1.44。 我通常有 UTF8 编码的数据,并尝试过 InnoDB 和 MyISAM 数据库类型。

【问题讨论】:

  • 输出结果如何?这和 JSON 有什么关系?

标签: php mysql json types


【解决方案1】:

PHP 本质上不会以字符串以外的任何方式处理 MySQL DATETIME 字段。您需要查看 php date() 函数以适合您需要的方式对其进行格式化。

【讨论】:

  • 您还可以通过从 SQL 查询 UNIX_TIMESTAMP(DATETIMEFIELD) 或在 php 中使用 strtotimeDATETIME 转换为 unix 时间戳
【解决方案2】:

mysql_* 不知道数据类型。我相信如果你使用 mysqli 它会识别一些数据类型。

http://php.net/manual/en/book.mysqli.php

【讨论】:

    猜你喜欢
    • 2016-10-20
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    相关资源
    最近更新 更多