用于插入数据的 PDO 准备语句
提供的辅助函数 dbSet,生成与传统 MySQL 驱动程序一起使用的 SET 语句,但缺乏对 PDO 准备语句的支持。为了解决这个问题,可以利用该函数的修改版本,利用 PDO 的优势。
修改后的辅助函数
更新的 dbSet 函数现在采用一组字段名称和对相应值数组的引用。它为每个字段构造一个带有占位符的 SET 语句,并将值添加到值数组中。
function dbSet($fields, &$values) { $set = ''; $values = array(); foreach ($fields as $field) { if (isset($_POST[$field])) { $set .= "`$field` = ?,"; $values[] = $_POST[$field]; } } return rtrim($set, ','); }
用法示例:
$fields = explode(" ","name surname lastname address zip fax phone date"); $_POST['date'] = $_POST['y']."-".$_POST['m']."-"$_POST['d']; $query = "UPDATE $table SET ".dbSet($fields, $values).", stamp=NOW() WHERE>
优点准备的 PDO语句:
替代解决方案:对象关系映射 (ORM)
考虑使用 ORM,例如 Doctrine ORM,它可以简化数据填充并消除了手动查询构建的需要。
$table = new Table(); $table->fromArray($_POST); $table->save();
这种方法自动执行基于定义的实体类将属性映射到数据库字段的过程。
以上是如何使用 PDO 准备语句改进 MySQL 插入/更新功能?的详细内容。更多信息请关注PHP中文网其他相关文章!