脚本宝典收集整理的这篇文章主要介绍了php – 使用PDO插入/更新帮助函数,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
function dbSet($fields) { $set=''; foreach ($fields as $field) { if (isset($_POST[$field])) { $set.="`$field`='".MysqL_real_escaPE_string($_POST[$field])."',"; } } return substr($set,-2); }
这样使用
$id = intval($_POST['id']); $fields = explode(" ","name surname lastname address zip fax phone"); $_POST['date'] = $_POST['y']."-".$_POST['m']."-".$_POST['d']; $query = "UPDATE $table SET ".dbSet($fields)." stamp=Now() WHERE id=$id";
它使代码相当干燥,同时容易但灵活.
我要问是否有人愿意分享类似的功能,利用PDO准备的语句功能?
我仍然怀疑,怎么做到这一点.
使用PDO准备语句插入数据是否有直接简单的方法?
应该是什么形式?查询构建器助手?还是插入查询助手?应该采取哪些参数?
我希望在SO上可以很容易地被用作答案.因为在每个主题中我们都可以看到准备好的语句使用推荐,但是还没有一个很好的例子.现实生活中的例子,我的意思.键入bind_@R_493_1403@20次不是一个很好的编程风格我相信.
甚至20个问号.
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 id=?"; $values[] = $id; $dbh->PRepare($query); $dbh->execute($values);
这可能不完美,可以使用调整.它考虑到$dbh是使用PDO连接设置的.在我所做的任何小的语法问题之前,这应该是正常的.
编辑
真的,我想我会去做原则ORM(或另一个ORM).当您设置模型并添加所有验证,那么它就像:
$table = new Table(); $table->FromArray($_POST); $table->save();
这应该容易地填充内容.这当然是与ORM,如教义.
更新
对第一个代码进行了一些细微的调整,例如将isset和使用rtrim放在substr上.提供模拟PDO扩展类的工作只需布置方式即可完成,并进行一些单元测试以确保其工作.
以上是脚本宝典为你收集整理的php – 使用PDO插入/更新帮助函数全部内容,希望文章能够帮你解决php – 使用PDO插入/更新帮助函数所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。