my.cnf(またはphp.ini)オプション/設定により、phpのmysqli拡張機能に正しいデータ型(つまり、int/float/string)か文字列か?mysqli fetch_assoc()が文字列としてすべてのフィールドを返しています
php7とmysql(mariaDB)の両方を使用して、2つの異なるサーバーに2つの同一のコード(変更なし)のインスタンスがあるので、私は尋ねます。ただし、クエリ結果はすべての文字列として返され、もう一方は正しいデータ型のクエリ結果を返します。
コールの線に沿って、次のとおりです。
$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_AND_FLOAT_NATIVE、1)の承知している、注意してください。問題を解決する可能性が高いことを理解してください。私が知りたいのは、その他の設定/オプションがある場合です。異なるタイプのデータを返す2つの同一インスタンスがあるため、返されるデータ型に影響する可能性があります。
http://php.net/manual/en/mysqli-result.fetch-field.phpでは、mysqliに表示されるデータ型を知ることができます。データ型コードの第1コメントを参照してください。彼らが現実を反映していれば、あなたは、物事のPHP側をさらに見下ろしたいと思っています。ちょっとした考え –