PHP在model层查询数据库

在model层里的PHP

 $sqlGetAllCode=sprintf("select distinct code from %s",$tableName);
        $codeArr=DB::select($sqlGetAllCode);
        $A_data = [];
        $B_data = [];
        foreach ($codeArr as $a => $b) { //a是角标  b是对应的code编号
            $sqlGetData = sprintf("select cumulative,create_time from ".$tableName." where code= '".$b->code."'");
            $codeData = DB::select($sqlGetData);
            $A_data[$b->code]=[]; 
            foreach ($codeData as $m => $n) { //x 角标 y->variation 是值
                array_push($A_data[$b->code], $n->cumulative); 
        }
        foreach ($codeData as $x => $y) { //x 角标 y->variation 是值
                array_push($A_data[$b->code], $y->create_time); 
        }
         }  
        dd($A_data);
          
        return $A_data;

查询出的数据

array:4 [▼
  "BX6-01" => array:12 [▼
    0 => "9.4"
    1 => "8.66"
    2 => "7.55"
    3 => "9.35"
    4 => "10.23"
    5 => "11.44"
    6 => "2018-08-01 08:50:24"
    7 => "2018-08-02 08:50:24"
    8 => "2018-08-03 08:50:24"
    9 => "2018-08-04 08:50:24"
    10 => "2018-08-05 08:50:24"
    11 => "2018-08-06 08:50:24"
  ]
  "BX6-02" => array:12 [▼
    0 => "9.4"
    1 => "8.66"
    2 => "7.55"
    3 => "9.35"
    4 => "10.23"
    5 => "11.44"
    6 => "2018-08-01 08:50:24"
    7 => "2018-08-02 08:50:24"
    8 => "2018-08-03 08:50:24"
    9 => "2018-08-04 08:50:24"
    10 => "2018-08-05 08:50:24"
    11 => "2018-08-06 08:50:24"
  ]
  "BX4-01" => array:12 [▼
    0 => "9.4"
    1 => "8.66"
    2 => "7.55"
    3 => "9.35"
    4 => "10.23"
    5 => "11.44"
    6 => "2018-08-01 08:50:24"
    7 => "2018-08-02 08:50:24"
    8 => "2018-08-03 08:50:24"
    9 => "2018-08-04 08:50:24"
    10 => "2018-08-05 08:50:24"
    11 => "2018-08-06 08:50:24"
  ]
  "BX4-02" => array:12 [▼
    0 => "9.4"
    1 => "8.66"
    2 => "7.55"
    3 => "9.35"
    4 => "10.23"
    5 => "11.44"
    6 => "2018-08-01 08:50:24"
    7 => "2018-08-02 08:50:24"
    8 => "2018-08-03 08:50:24"
    9 => "2018-08-04 08:50:24"
    10 => "2018-08-05 08:50:24"
    11 => "2018-08-06 08:50:24"
  ]
]

现在想要cumulative后变成数组将时间存进去 应该怎么在model层写?

【以下回答由 GPT 生成】

问题已经提供了一个使用PHP查询MySQL数据库的代码示例。以下是对该代码的优化版本,并附带了一些提示来帮助更好地理解问题。

<?php

// 在model层中,通过使用PHP查询MySQL数据库,获取指定表中的不同代码
$sqlGetAllCode = sprintf("SELECT DISTINCT code FROM %s", $tableName);
$codeArr = DB::select($sqlGetAllCode);

$A_data = [];

// 遍历查询得到的代码数组
foreach ($codeArr as $codeObj) {
    $code = $codeObj->code;

    // 根据每个代码编号,查询相关数据
    $sqlGetData = sprintf("SELECT cumulative, create_time FROM %s WHERE code='%s'", $tableName, $code);
    $codeData = DB::select($sqlGetData);

    $A_data[$code] = [];

    // 将查询结果中的cumulative值和create_time值存入A_data数组
    foreach ($codeData as $dataObj) {
        array_push($A_data[$code], $dataObj->cumulative);
        array_push($A_data[$code], $dataObj->create_time);
    }
}

// 返回查询结果
return $A_data;

这样,您就可以在PHP的model层中使用上述代码查询数据库,并从中获取所需的数据。

优化方案说明:

  1. 在代码中使用sprintf函数,可以更好地组织查询语句,并避免SQL注入风险。
  2. 使用SELECT DISTINCT语句可以从数据库中获取指定表中的不同代码。
  3. 使用一个循环遍历查询出的代码数组,可以依次查询相关数据。
  4. 将查询结果按照代码编号存入A_data数组,以便后续使用。
  5. 使用array_push函数将查询结果的cumulative值和create_time值存入A_data数组。

如果您还有其他问题或需要进一步的帮助,请随时询问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^