php - 如何在 PDO 中使用数组插入/更新?

标签 php mysql pdo

我是 PDO 的新手,不确定我是否在正确的地方/方式寻找我想要的用法。

PDO 看起来非常好,但我发现这种代码相当长,并且不想将它用于我运行的每个查询:

$sth = $database->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->execute(array(':calories' => $calories, ':colour' => $colour));

我宁愿使用这样的东西:

$array = 
 'calories' => $calories,
 'colour' => $colour
);
$db->insert("fruit", $array);

(同样,我想进行更新调用,我希望它对每次插入/更新都有效,以便将键名作为表中的字段,将值作为要插入/更新的值).

我看重的是:

  • 在我自己的脚本中使用最少的代码,仅使用数组并在其他地方处理 PDO 语句(包括错误捕获)。
  • 仍然利用 PDO 附带的准备好的语句和面向对象的编程。

我找到了很多答案,但他们提出了许多不同类型的解决方案,包括:

总而言之,似乎有很多选择,但我不知道最适合我的目的是什么,甚至不知 Prop 体的区别是什么。

请说明:我应该在这里寻找什么以及在哪里寻找?!

最佳答案

有许多系统可以消除常规查询并用更高级别的代码替换它们。

一种是使用像 Propel 这样的 ORM或 Doctrine .

更好的是使用完整的 development framework喜欢Laravel这不仅可以帮助您进行数据库查询,还可以帮助您解决更多问题。大多数应用程序都需要考虑 HTML 转义、XSS 保护、URL 映射、身份验证、 session 管理等。自己编写这一切是困难且容易出错的。

关于php - 如何在 PDO 中使用数组插入/更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25588938/

相关文章:

php - 为什么它总是说: Undefined index: User

php - 转置 mysql 表中的数据

java - 可以将我的本地主机网络服务与模拟器连接,但不能与我的手机连接

MYSQL SELECT * 不适用于 GROUP BY 和 HAVING

PHP switch case + PDO 更新数据库

PHP 将旧的 mysql_query 更改为 PDO

php - 如何在标题中居中图像 (TCPPDF)

php - 无法使用Yii写入mPDF临时文件

mysql - 选择表 A 中在表 B 中没有任何新记录的项目

php - 在 bool 值上调用成员函数 fetch()