使用mysqli非准备语句时如何保留SQL数据类型

joh*_*hna 5 mysql

我想在 PHP 中使用 mysqli 使用非准备语句并保留 SQL 数据类型。

php.net此页面上的比较表表明可以执行此操作:

结果集值 SQL 数据类型

准备好的语句:获取时保留

非准备语句:获取时转换为字符串或保留

取货是什么意思?

目前,在类似以下列的代码中,所有的值都是字符串。有没有办法在不使用准备好的语句的情况下保留数据类型?

$conn = new mysqli('db_host', 'db_username', 'db_password', 'db_name');
$conn->set_charset('db_charset');
$result = $conn->query($sql, MYSQLI_USE_RESULT);
$row = $result->fetch_assoc();
Run Code Online (Sandbox Code Playgroud)

注意。无缓冲查询

joh*_*hna 7

从那以后,我找到了MYSQLI_OPT_INT_AND_FLOAT_NATIVE将数字列转换为intor float(布尔列变为int)的选项 mysqli 。

我不确定这是否是 php.net 文档中提到的内容,或者是否有其他方法。

例子:

$conn->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);
Run Code Online (Sandbox Code Playgroud)