【发布时间】:2014-01-26 13:25:48
【问题描述】:
当我第一次开始学习 php 时,我明白将 db 连接文件存储在我的根文件夹中并在每个文件的顶部包含一次是一种很好的做法。这些设置将贯穿整个文件并在函数等内部工作 - 所以同一个文件是存储全局变量的好地方。
现在我终于要更新我的代码/在一个新项目上工作了,我知道 mysql 功能已被贬低,我应该使用 PDO 或 MySQLi。我读到的东西表明,按照 Mysqli 的旧样式执行 while 循环更难,所以我认为 PDO 可能是一个更好的起点。
//例如
while($val = mysql_fetch_array($query)){
$propertyid = $val['propertyid'];
$regularid = $val['regularid'];
$oldamount = str_replace(",", "", $val['amount']);
$datedue = $val['billdate'];
}
所以我认为最好从 PDO 开始。如果我在它之前包含 $dbh 连接线,则以下内容有效。但是,当我将 $dbh 连接线移动到我的设置文件时,它不会。
$query = $dbh->prepare("SELECT username FROM users");
$query->execute();
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
print "hi ";
print $row['username']."<br/>";
}
我知道每个新函数都需要调用连接。我的问题是:
- 在数据库连接中添加到每个函数的代码最少的方法是什么
- 最好将用户名和密码存储在哪里 - root php? .ini 文件?
- 有没有比我一直在使用的“更好”的方法来执行 while 循环...
【问题讨论】:
-
$dbh存在于全局范围内,因此不会在您的函数中设置,您可以将其作为参数传递给需要它的函数,或使用类似global $dbh;使其可访问。 -
另外,您可以使用
$results = $query->fetchAll()并使用foreach来循环它们,但我不确定这会快多少(如果有的话)。