現在のプロジェクトでmysqlクエリ行の使用からPDOに転送していますが、問題があります。このタスクでは、クラスを使用することは許可されていません(私に言わせれば愚かな制限)
基本的に、メインのphpファイルが設定変数$ DBHを認識できなかったため、オブジェクト以外のエラーが発生していました。$ DBHグローバルで各関数を設定することで、この問題を解決しました。したがって、それを使用することはできますが、これは悪いコーディング慣行であると言われています。これは本当ですか?もしそうなら、どうすれば私の関数に私の構成変数を表示させることができますか?
Config.php
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'];
}
}