php - 通用 MySQL 全选函数

标签 php mysql

我在我的网站上写了很多 SELECT * FROM... 类型的查询。我想编写一个函数来帮我处理这个问题,这样我就可以更快地调用它,而无需使用 PDO 和 OOP 等更高级的技术。我只是对如何调用从数据库检索的数据感到困惑,特别是在循环数组的结果时。

我喜欢这样的东西:

function selectAll($tableName, $limitAmount) {
    global $dbConnection;
    $query = mysql_query("SELECT * FROM $tableName ORDER BY id LIMIT $limitAmount");
    $row_result = mysql_fetch_assoc($query);
    return $row_result;
}

假设这是一堆新闻帖子。我想以一种典型的方式循环遍历结果:

// CALL THE FUNCTION
selectAll('news_table', '10');

// SOMEHOW LOOP THROUGH RESULTS??
do {
    echo "<h2>".$row_result['title']."</h2>";
} while ($row_result = mysql_fetch_assoc($query));

显然这不是我循环遍历函数的定制结果的方式。我什至不确定我的功能是否正确。

非常感谢任何帮助。

编辑:忘记在函数内返回结果并调用实际函数。我的错。现已更新。

最佳答案

像您这样调用这样的函数是没有意义的。

就这样吧

function fetchAll($query) {
  $res = mysql_query($query) or trigger_error("db: ".mysql_error()." in ".$query);
  $a   = array();
  if ($res) {
    while($row = mysql_fetch_assoc($res)) $a[]=$row;
  }
  return $a;
}

并将其与任何查询一起使用:

$data = fetchAll("SELECT * FROM news_table ORDER BY id LIMIT 10");
foreach ($data as $row) {
    echo $row['title'];
}

SQL 查询本身就是一个强大的程序。不要因为愚蠢的选择而降低它的力量。
使用 SQL 来表示数据处理逻辑并使用此辅助函数来避免重复。

关于php - 通用 MySQL 全选函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10479163/

相关文章:

php - 嵌套 while 循环不适用于我的 GROUP BY 查询

php - 获取MySQL中两个日期相差的天数

php - AVG 在同一列上按另一列单个 sql 查询中的值

php - 通过oauth的paypal rest api凭据

mysql - 检索具有 2 列匹配和 1 列不同的行

php - 我如何将文本从textarea发布到mysql数据库

mysql - 在 MySQL 数据库中存储具有与另一个表相关的 id 的数组的最佳方法是什么?

javascript - Node 和 MySQL - 解决 "Too Many Connections"问题

mysql - 列名 'User ID' 的简单 WHERE 子句?

PHP文件权限错误