为什么';t PHP';s的MySQL驱动程序强制转换数据类型?

为什么';t PHP';s的MySQL驱动程序强制转换数据类型?,php,mysql,types,Php,Mysql,Types,我已经思考了很长时间,但我从来没有听到过解释 我猜要么是MySQL的C API根本没有被构造成以其原始类型(听起来像是设计缺陷)来传递数据,要么是原始的MySQL驱动程序(被mysqli驱动程序取代)设计得很糟糕,mysqli驱动程序试图向后兼容 我对PHP中的PostgreSQL类型了解得最多。。为什么MySQL没有呢?在其他语言和RDBMS中,将所有值作为字符串返回是否是一种常见做法?mysql已经过时了mysqli更好('I'当然代表'改进')PDO超越了所有人,至少知道bin/int/c

我已经思考了很长时间,但我从来没有听到过解释

我猜要么是MySQL的C API根本没有被构造成以其原始类型(听起来像是设计缺陷)来传递数据,要么是原始的MySQL驱动程序(被mysqli驱动程序取代)设计得很糟糕,mysqli驱动程序试图向后兼容


我对PHP中的PostgreSQL类型了解得最多。。为什么MySQL没有呢?在其他语言和RDBMS中,将所有值作为字符串返回是否是一种常见做法?

mysql
已经过时了
mysqli
更好('I'当然代表'改进')
PDO
超越了所有人,至少知道bin/int/char的区别。

我认为最初的MySQL驱动程序是在2000/2001年左右编写的(可能更早?)。PHP数据对象(PDO)类直到2004年才被编写出来——不过这将向您展示PHP在短时间内完成了多少工作

当它起源(PHP)的时候,它不一定是经过深思熟虑或计划好的,但是从那时起他们一直在整理事情


这一点以及PHP不是a的事实也许可以解释为什么…

我知道你的意思,前几天我想知道这一点。在将数据传递到其他地方之前,我通常会使用
(int)
等显式地自己完成。