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

标签 php mysql mysqli sqldatatypes

我有一个用 Flex 制作的项目,使用 PHP 数据服务访问 SQL Server 数据库,我需要将其转换为 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[]

最佳答案

from the manual

Returns an array of strings that corresponds to the fetched row or NULL if there are no more rows in resultset.

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

关于php - mysqli 将位和整数作为字符串返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9433267/

相关文章:

php - PDO 插入不起作用

php - 使用php在mysql中创建数据库

PHP MySQL 更新查询失败

mysql - 首先按特定字段值排序

mysql - 同一台服务器上的 Ubuntu Mysql 版本 4.1.22 和 5.6

php - 无法通过 PHP 连接到 MySQL,mysql 可以工作,但不能使用 mysqli 或 PDO

php - 使用 PHP OR/AND

php - real_escape_string 不清理输入的文本

php - 在 php 中使用两次 $_POST 变量

php - 在 php 中登录整个网站