【发布时间】:2021-10-22 17:50:01
【问题描述】:
mysqli 中的准备查询将数字数据库列作为 PHP 数字返回,mysqlnd 驱动程序使用 MYSQLI_OPT_INT_AND_FLOAT_NATIVE 选项也是如此。
我正在对旧代码库进行现代化改造以使用参数化查询。代码的其他区域依赖于具有字符串数据类型的查询结果,例如:
if ($object->isTrue() === '1') { }
为了使输出符合现有代码的预期,我想出的最佳解决方案是将每个结果手动转换回字符串:
$data = [];
while ($row = $result->fetch_assoc()) {
array_walk($row, function(&$field) { $field = (string) $field; });
$data[] = $row;
}
有没有更有效/更有效的方法来做到这一点?
【问题讨论】:
-
这个问题的变体已被标记为重复并关闭了几次。请注意,我不是试图让查询返回数字数据类型。我有数字数据类型。我需要字符串。