我正在尝试设置一个函数,该函数将使我从数据库中选择mysql,因为我将多次使用此查询。所以我想与其在每个 php 文件中编写相同的选择代码,我可以将其放入函数中并在需要时调用它。到目前为止,我在不同的文件中使用它来从数据库中获取结果:
$stmt_query = $db->prepare("SELECT * FROM table1 WHERE memberID='$id_memberID'");
$stmt_query->execute();
$row_query = $stmt_query->fetchAll(PDO::FETCH_ASSOC);
foreach ($row_query as $show_query) {
$id = $show_query['id'];
$model = $show_query['model'];
$year = $show_query['year'];
}
然后
echo $id; echo $model; echo $year;
问题是,如何在每个不同的 php 文件中多次执行上述操作的情况下实现相同的目标?
像你建议的那样编写一个函数,只需将你的$db
var声明为全局,因为php将函数范围限制为函数。
function getAll($id_memberID) {
global $db;
// your code
}
在代码中调用此函数...
function query_fetch(){
$stmt_query = $db->query("SELECT * FROM table1 WHERE memberID='$id_memberID'");
$row=$stml_query->fetch();
return $row;
}
然后,您只需在 while 循环中使用它即可获取数据。
function query_fetch();
while($row){
$id = $row['id'];
$model = $row['model'];
$year = $row['year'];
}
或者,您可以像使用时一样使用foreach
。
而且这也不多...如果需要,您可以重复。
$stmt_query = $db->query("SELECT * FROM table1 WHERE memberID='$id_memberID'");
while($row=$stml_query->fetch()){
$id = $row['id'];
$model = $row['model'];
$year = $row['year'];
}
我会远离使用全局变量。 全局变量比单例更糟糕,单例比依赖注入 (DI) 更糟糕。如果可以,请立即使用依赖项注入容器转到 DI。本文提供了如何使用 DI http://paul-m-jones.com/archives/6014 的基本示例 基本上,您将为应用程序设置引导脚本,声明 DI 容器,创建连接,将连接添加到容器,然后将其从容器中取出并将其作为参数传递给需要它的任何方法。有一堆易于设置和使用的PHP DI容器。PHP-DI和Pimple就是两个很好的例子。