Php mysqli fetch_assoc()正在以字符串形式返回所有字段

Php mysqli fetch_assoc()正在以字符串形式返回所有字段,php,mysql,mysqli,php-7,Php,Mysql,Mysqli,Php 7,是否有my.cnf或php.ini选项/设置可以告诉php的mysqli扩展返回具有正确数据类型的数据,即int/float/string或just string 我这样问是因为我有两个相同代码的实例未在两个不同的服务器上修改,都使用php7和mysql。但是,似乎一个返回的查询结果是所有字符串,而另一个返回的查询结果是正确的数据类型 电话大致如下: $driver = new mysqli_driver(); $driver->report_mode = MYSQLI_REPORT_ST

是否有my.cnf或php.ini选项/设置可以告诉php的mysqli扩展返回具有正确数据类型的数据,即int/float/string或just string

我这样问是因为我有两个相同代码的实例未在两个不同的服务器上修改,都使用php7和mysql。但是,似乎一个返回的查询结果是所有字符串,而另一个返回的查询结果是正确的数据类型

电话大致如下:

$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_STRICT | MYSQLI_REPORT_ERROR;
$mysqli - new mysqli('p:'. $host, $user, $pass, $name);
$mysqli->set_charset('utf8');

$query = "SELECT fieldInt, fieldString FROM mytable";
$result = $mysqli->query($query);
$dataSet = array();
while($row = $result->fetch_assoc()){
   $dataSet[] = $row;
}

echo json_ecnode($dataSet);

请注意,我知道选项mysqli_OPT_INT_和_FLOAT_NATIVE,1;选项,并了解它可能会解决问题。我想知道的是,是否有任何其他设置/选项可能会影响返回的数据类型,因为我有两个相同的实例以不同的类型返回数据。

并非所有SQL数字类型都可以表示为PHP int或float类型

例如,如何将SQL中的无符号整数存储为PHP int

我不知道为什么两个和你说的一样的例子表现不同。我怀疑它们不像您想象的那样完全相同。

可以告诉您mysqli看到的数据类型。有关数据类型代码,请参见第一条注释。如果它们反映了现实情况,那么您可能希望进一步了解php方面的情况。只是想一想,而且: