小编典典

获取MySQL查询结果作为其本机数据类型?

mysql

我尝试使用mysql_fetch_row()和提取MySQL查询结果,mysql_result()并且将数值作为字符串返回。

有什么方法可以将数据存储为表中的数据类型吗?

该应用程序将查询许多不同的查询,因此我将无法基于1乘1将值强制转换为预期的数据类型。


阅读 245

收藏
2020-05-17

共1个答案

小编典典

我不认为可以在PHP 5.2 中以其本机数据类型 (即字符串的其他任何形式) 获取数据…

如果我没记错的话,在PHP 5.3中,当您使用新的 (在PHP > = 5.3中是新的) mysqlnd (MySQL本机驱动程序)
驱动程序时,就有可能。

在深入浏览书签后,我发现了有关mysqlnd的文章: PDO_MYSQLND: The new features of PDO_MYSQL in PHP 5.3

它说(引用):

对PDO使用mysqlnd的优点

当使用服务器端的预处理语句时,mysqlnd返回本机数据类型,例如,INT列作为整数变量而不是字符串返回。这意味着内部的数据转换较少。

但这仅是PHP 5.3(前提是您的PHP 5.3版本是使用mysqlnd编译的( 而不是旧的libmysql) ),并且似乎仅适用于准备好的语句:-(

我猜这对您没有帮助。

这是另一个关于mysqlnd的新功能的内容,它不仅针对准备好的语句谈论此内容:PHP:mysqlnd可以节省新的网络流量,CPU和内存

但是,不确定是否已将其合并到正式的mysqlnd驱动程序中-最好的方法是尝试;但是无论如何,它仍然只能是PHP> = 5.3 …

另一种解决方案是在PHP方面具有某种映射系统 (例如ORM), 以将来自DB的结果转换为PHP数据类型…

是的,如果要使用类型敏感的运算符(例如)===和,这是很不好的!==

2020-05-17