使用mysqli非准备语句时如何保留SQL数据类型 [英] How to preserve SQL data type when using mysqli non-prepared statements

查看:54
本文介绍了使用mysqli非准备语句时如何保留SQL数据类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I would like to use non-prepared statements using mysqli in PHP and preserve the SQL data type.

php.net 上的这个页面上的比较表 它表明可以这样做:

结果集值 SQL 数据类型

Prepared Statement:获取时保留

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

获取是什么意思?

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

At present, in code like the following column values are all string. Is there a way to preserve data type without using prepared statements?

$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();

注意.无缓冲查询

推荐答案

我已经找到了选项 mysqli MYSQLI_OPT_INT_AND_FLOAT_NATIVE 将数字列转换为 intfloat(布尔列变成 int).

I have since found the option mysqli MYSQLI_OPT_INT_AND_FLOAT_NATIVE that converts numeric columns to int or float (boolean columns become int).

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

I'm not sure if this is what was referred to in the php.net documentation or if there is another method.

示例:

$conn->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);

这篇关于使用mysqli非准备语句时如何保留SQL数据类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆