php - 如何使用 PostgreSQL 和 php 组织应用程序?

标签 php postgresql

我看过 Yii2 和 Laravel,但我不想在我的应用程序中使用 ActiveRecord、ORM 和 QueryBuilder,但如果我不使用它们,那 50% 的功能框架你就可以扔掉了。我想使用(cte、over、事务、存储过程和大查询)我也想使用单元测试。

你能告诉我如何在 php 上组织这个应用程序的结构吗,可以使用表网关和表模块模式来拆分层 SQL 代码和 php?

最佳答案

坦率地说,我一直觉得只使用 PDO 和 SQL 更简单。我经常发现自己与框架作斗争,尤其是使用 cte 和存储过程。 Postgresql 对 json 有很好的支持,所以它可以很容易地用一条语句获取对象,甚至是复杂的嵌套对象。例如……

$sql = "select row_to_json(g) from (
    select
        firstname,
        lastname,
        (select json_agg(e) from (
             select address from email where fk_user=user.id
          )e
        ) as emails
    from user
    where id=:id
)g;"
$stmt = $db->prepare($sql);
$stmt->bindValue('id', 1, PDO::PARAM_INT);
$stmt->execute();
$obj = json_decode($stmt->fetchColumn(0));

关于php - 如何使用 PostgreSQL 和 php 组织应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41311164/

相关文章:

php - 对 php 文件的 Ajax javascript 调用没有执行任何操作。我缺少什么?

php - 学习编写 PHP 表单框架

php - 未捕获的 TypeError : join(): Argument #2 ($array) must be of type ? 数组、给定的字符串/highcharts 的 PHP8 数据

java - PHP exec() 无法访问 .jar 文件

postgresql - createuser: 无法连接到数据库 postgres: 无法连接到服务器: 没有那个文件或目录

php - MySQL - WHERE 子句中的自定义错误

mysql - 查询 A 喜欢 B,B 喜欢 C,两个分离度

postgresql - 如何使用 created_at 将简单的 postgresql 表转换为超表或时间刻度数据库表进行索引

postgresql - 为什么聚合函数不能与 DISTINCT ON(...) 一起使用?

sql - 这些查询是否相同?如果不是如何进行更简单的查询