【问题标题】:Does an SQL Database return a type, or does the Database Abstraction Layer perform implicit casting? (Propel and php)SQL 数据库是否返回类型,或者数据库抽象层是否执行隐式转换? (推进和php)
【发布时间】:2019-03-18 04:25:31
【问题描述】:

VARCHAR 类型的列中获取结果100 的简单Propel 查询返回一个字符串。这是预期的行为。我正在使用旧系统,并且知道我需要将这些值转换为 php integer 类型,以便以编程方式对它们进行排序或执行算术等。

数据库是否显式返回 VARCHAR,如果是,这对于弱类型语言如何工作?

或者,DBAL 是否查看列类型并在此基础上执行隐式转换?

换一种说法:SQL 中的列类型只是“标签”或“标签”,由 DBAL 解释,然后根据语言进行适当转换?

为了保持问题的具体性,我想回答以下问题:PropelphpMySQL

【问题讨论】:

    标签: php mysql propel dbal


    【解决方案1】:

    如果我对您的理解正确,您是在询问数据库是否使用二进制格式来存储数据。是的,它确实。数据库和应用程序之间的层决定了返回给应用程序的格式。

    这实际上与您的问题正好相反 - DBAL 接收输入的信息,然后将其转换为应用程序可以处理的任何内容。

    【讨论】:

      【解决方案2】:

      Varchar 基本上是一种将数字字符串化为字符的字符类型。 SQL 只允许您将列作为一个整体进行自定义。提取单个值并更改其数据类型是我从未遇到过的一种做法。虽然它真的很强大。希望能回答你的问题。

      【讨论】:

      • 哦,是的。我知道整列都有 SQL 类型。我更想知道 SQL 中的这种类型是否只是一个“标签”或“标签”,由 DBAL 解释,然后根据语言进行适当的转换。
      • 数据类型在服务器中是硬编码的,而不仅仅是标签的名称。在这种情况下,您可能想研究 MongoDB。它可能对你有用。
      猜你喜欢
      • 1970-01-01
      • 2011-12-15
      • 1970-01-01
      • 1970-01-01
      • 2019-07-24
      • 2011-07-01
      • 2012-11-22
      • 2010-10-15
      • 2016-04-13
      相关资源
      最近更新 更多