我正在为当前项目从使用 mysql 查询行转移到 PDO,但我遇到了一个问题。对于这项任务,我不允许使用任何课程(如果你问我,这是愚蠢的限制)
基本上我得到了一个非对象错误,因为我的主 php 文件看不到设置变量 $DBH。我通过使用 $DBH 全局设置每个函数来解决这个问题;所以可以使用它,但是我被告知这是不好的编码习惯。是这样吗?如果是这样,我怎样才能让我的函数看到我的配置变量。
配置文件
try
{
$DBH = new PDO("mysql:host=host;dbname=db", "username", "Password");
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e){
echo $e->getMessage();
}
一个php文件
function concName($concID)
{
global $DBH; //THIS is the area that im told is bad practice - can this be eliminated?
$stmt = $DBH->prepare("SELECT CONCAT(`Firstname`, ' ', `Surname`) AS 'Membername' FROM `members` WHERE `MemberID`= :MemberID");
$stmt->bindValue(":MemberID",$concID);
$stmt->execute();
while($row = $stmt->fetch())
{
return $row['Membername'];
}
}