gpt4 book ai didi

用于构建动态填充模型的 mySQL 查询

转载 作者:行者123 更新时间:2023-11-29 21:41:01 24 4
gpt4 key购买 nike

下面有一些代码,演示了我想要动态完成的硬编码示例。

在较高层面上,我希望执行类似 select * from view_data_$app_state 的操作,然后动态地将 View 表中的所有数据获取到我的 mustache 模板中。

我当前必须用来对特定列的多行数据以及 View 数据进行分组的代码是:

 <?php

error_reporting(E_ALL);

class Example {
function __construct(){
try {
$this->db = new PDO('mysql:host=localhost;dbname=Example', 'root','drowssap');
}
catch (PDOException $e) {
print($e->getMessage());
die();
}
}
function __destruct(){
$this->db = null;
}
function string_to_array($links_string){
return explode(",", $links_string);

}
function get_view_data(){
$q = $this->db->prepare('select *, GROUP_CONCAT(`links`) as "links" from `view_data_global` ');
$q->execute();
$result = $q->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
}

$Example = new Example();

$result = $Example->get_view_data();

$result[0]["links"] = $Example->string_to_array($result[0]["links"]);

echo json_encode($result);

这给了我一个完美的对象,同时GROUP_CONCAT 似乎就是这样做的,但是在编写查询之前我必须知道将包含多行的列名。我正在尝试找出一种方法,并希望制作一个自定义查询+代码示例,它将具有多行 null null 且非空数据的 cols 转换为如上所述的数组 - 但返回数据..再次像代码一样多于。

以下是实际数据的输出:

[{"id":"1","title":"This is the title test","links":["main","about","store"]}];

如何在每个 View 表上动态复制此过程?

非常感谢您!

最佳答案

您可以使用 PDOStatement::fetch 检索结果,并将 fetch_style 设置为 PDO::FETCH_ASSOC(一些其他值也将提供相同的信息)。在这种情况下,结果集将是按列名称索引的数组。您可以使用 foreach (array_expression as $key => $value)

访问此信息

请参阅documentation了解更多信息。

关于用于构建动态填充模型的 mySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34503181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com