【问题标题】:mysqli returning bits and ints as stringmysqli将位和整数作为字符串返回
【发布时间】:2012-03-15 01:14:30
【问题描述】:

我有一个用 flex 制作的项目,使用 PHP 数据服务访问 SQL 服务器数据库,我需要将其转换为 MySQL,我已将所有 PHP 服务从 sqlsrv 更改为 mysqli。
像这样:

$this->connection = mysqli_connect(SERVER,USERNAME,PASSWORD,DATABASE); // Start Connection
$ssqlstring = "select * from Users";
$runssql = mysqli_query($this->connection, $ssqlstring);
while($user = mysqli_fetch_array($runssql)) 
{
  $users[$user["ID"]] = $user;
}
return $users;

它在 sqlsrv 上运行良好,但使用 mysqli 它返回以将 INTBITDATE 值调整为 string

MySQL 上的主要数据类型是INTVARCHARBIT(1)DATETIMEDATE(与 sqlsrv 相同)
而在 flex 上,返回类型主要是 object[]

【问题讨论】:

标签: php mysql mysqli sqldatatypes


【解决方案1】:

from the manual

返回一个 strings 数组,对应于获取的行;如果结果集中没有更多行,则返回 NULL。

PHP 中的原生类型相对较少,简而言之,可能的有 INT、FLOAT 和 STRING(其中 STRING 是所有其他类型的默认值,如 BIT 和 DATE 等)。 PDO 在使用更接近实际的类型方面要好一些,但仍然默认使用字符串很多。在mysqli 中,您可以使用mysqli_result_fetch_fields 来获取返回的字段类型,并将其转换为所需的格式,另请参见MYSQLI_TYPE_* constants

【讨论】:

猜你喜欢
  • 2014-03-28
  • 1970-01-01
  • 2017-01-03
  • 2015-12-28
  • 2017-10-22
  • 1970-01-01
  • 1970-01-01
  • 2013-06-17
  • 2013-03-10
相关资源
最近更新 更多