gpt4 book ai didi

php - PDO 计数和循环优化

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

信息

我开始注意到我的编码习惯有一种趋势,我想知道是否有更好的方法。

问题

举个例子,假设我有一个表,里面可能有数据,理想情况下我想遍历数据(如果有的话),如果没有则显示错误消息。

当前解决方案

function countResults($type){

$STH = $this->database->prepare('SELECT COUNT(*) FROM table WHERE type = :type');
$STH->execute(array(':type' => $type));
return $STH->fetchColumn();

}

if($class->countResults("1") != 0){

$STH = $this->database->prepare('SELECT * FROM table WHERE type = :type ');
$STH->execute(array(':type' => $type));

while($row = $STH->fetch(PDO::FETCH_ASSOC)){

echo "Row Name:".$row['name']."<br />";

}

} else {

echo "None found";

}

尝试次数

我已经尝试通过将 $STH->fetch(PDO::FETCH_ASSOC) 存储到变量中然后使用 if(!empty($var)){ 来减少它的解决方案//循环代码}; 但它不允许我正确地循环出数据。

结论

我知道这不是我正在努力紧急修复的突破性错误,但我觉得这似乎正在成为一种坏习惯,我心里有点唠叨,我有一个更聪明的解决方案很乐意在它变成习惯之前学习!

如有需要,请随时提出问题,谢谢。

最佳答案

您的方法与其说是错误,不如说是不合逻辑。您所需要的只是常识。
假设您要购买六件装。您是通过两个 Action 还是一个 Action 从口袋里取钱?你真的这样做吗:

  1. Handlebars 伸进口袋,摸到钱。有一些。好的。
  2. 收回手,然后再次伸手 - 这次是为了钱。

为什么不只去一次,如果喝够了就买啤酒,如果不够就说对不起?

$STH = $this->database->prepare('SELECT * FROM table WHERE type = :type ');
$STH->execute(array(':type' => $type));
$data = $STH->fetchAll();

if ($data)
{
foreach($data as $row)
{
echo "Row Name:".$row['name']."<br />";
}

} else {

echo "None found";
}

关于php - PDO 计数和循环优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19495669/

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