独立于数据库结构的PDOMySQL查询


PDO MySQL querying independent of database structure

要使用PDO与MySQL数据库进行交互,假设命名占位符,需要对数据库结构有一定的了解:

$db->("INSERT INTO table (firstname, lastname, age) value (:fn, :ln, :age)");

有没有办法在没有这种知识的情况下使用带有命名占位符的预准备语句,允许在不更改代码的情况下更改表结构。或者,有没有办法查询数据库的表结构?

一个解决方案是观察你的商业模式:

select 
    column_name,
    column_type
from 
    information_schema.columns 
where 
    table_schema = 'yourschema'
and table_name = 'yourtable';

解析此结果,并使用 php 动态构建插入查询。使用column_type信息,可以在绑定值时映射 PDO::XXX 数据类型。