SQL 数据库是返回类型,还是数据库抽象层执行隐式强制转换?(推进和 php)



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

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

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

换句话说:SQL中的列类型是否只是一个"标签"或"标签",由DBAL解释,然后根据语言进行适当的强制转换?

为了使问题具体化,我想要一个关于以下方面的答案:PropelphpMySQL

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

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

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

最新更新