SQL 数据库 return 是一种类型,还是数据库抽象层执行隐式转换? (推动和 php)

Does an SQL Database return a type, or does the Database Abstraction Layer perform implicit casting? (Propel and php)

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

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

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

换句话说:SQL 中的列类型是否只是 'tag' 或 'label',由 DBAL 解释,然后根据关于语言?

为了使问题具体化,我想回答以下问题:PropelphpMySQL

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

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

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