mysqli将位和整数作为字符串返回

Posted

技术标签:

【中文标题】mysqli将位和整数作为字符串返回【英文标题】:mysqli returning bits and ints as string 【发布时间】: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[]

【问题讨论】:

Accessing PHP MySQLI predefined constants via respective value? 的可能重复项 这能回答你的问题吗? How do I make sure that values from MySQL keep their type in PHP? 这能回答你的问题吗? MySQL integer field is returned as string in PHP 【参考方案1】:

from the manual

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

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

【讨论】:

根据您的回复我找到了这个***.com/questions/6537212/…,谢谢

以上是关于mysqli将位和整数作为字符串返回的主要内容,如果未能解决你的问题,请参考以下文章

将位写入文件?

ruby 编写一个方法separate_comma,它以整数作为输入,并以逗号分隔的整数作为字符串返回

pg-promise 将整数作为字符串返回

将位值 (1) 替换为日期名称 SQL

在 PHP 中,为啥 mysqli_num_rows 不为返回行数为 0 的查询返回整数?

是否有任何不尊重 ASCII 的字符集?