要使用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 数据类型。