当前位置: 首页 > 面试题库 >

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

陶永望
2023-03-14
问题内容

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

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

该应用程序将查询许多不同的查询,因此我将无法基于1乘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数据类型…

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



 类似资料:
  • 我找不到在laravel mysql中显示集合随机结果的方法。我的问题是: 奇怪的是,我相信使用兰德可以完成这项工作,但我的结果显示使用与否(兰德)值相同。 谢谢你的帮助。

  • 问题内容: 我不确定这是否可能。我可能正在为尝试执行的工作使用错误的工具。 假设我要执行以下操作: 我执行一个名为“ GetTableName”的函数,该函数返回要从中获取数据的SQL表的名称。 我执行另一个名为“ GetFields”的函数,该函数返回SQL表中一个或多个字段的名称。 我希望能够编写另一个函数,该函数将返回一个数据集(或其他通用对象),该数据集包含“ GetTableName”指

  • 我需要通过在Hibernate中执行本机查询获得结果集。虽然我使用的是EntityManager,但查询和结果集可能不是实体。 当我尝试下面的代码时,我得到了一个结果。因为我要求的是一个有值的结果。(Hibernate JPA) 结果是:爱丽丝 当我试图从相同的代码中获得多个select out(查询为select name)时,指定来自fresher_test(其中id=1) 这有一种方法,我可

  • 获取查询对象的结果集 // 查询邮箱或密码是否正确 async checkEmailAndPassword(loginData) { // 解构查询对象中的结果 const { dataValues: {id,username,password,email} } = await this.ctx.model.User.findOne({

  • Etity公司 服务 Impl @服务公共类DateFMailServiceImpl实现DateFMailService{ } 存储库 @Repository公共接口DateFMailRepository扩展JpaRepository } 邮件分离器 控制器 保存运行程序 我已经纠正了我的问题。我已经在这里粘贴了所有与我的问题相关的代码。对于初学者,我只想将存储库的查询结果输出到控制台。但在我刚刚

  • 我做了一个elasticsearch查询,以按县查找成员页面。 总体目标是获取查询返回的所有memberId,并将它们用作另一个查询的搜索条件。(实体“成员”有一个名为“memberId”的字段) 我尝试使用. getContent获取页面内容(以便从页面获取memberId字段)... 但是我不知道我到底在用. Collection做什么,它返回的不仅仅是memberId 下面是sysout中显