グローバル変数を置き換えようとしています。グローバルpdoオブジェクトなしでこの実行作業を行う
私のコードの小さな例:
# index.php:
include "dbc.php";
echo cName(1);
# dbc.php:
try{
$connect = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset:UTF8", DB_USER, DB_PASS, $driver_options);
}
catch(PDOException $pe)
{
die('Could connect to the database because: ' .$pe->getMessage());
}
function cName($cID){
global $connect;
$sql = $connect->prepare("SELECT name FROM cocos WHERE id=:id");
$sql->bindValue(":id", $cID);
$sql->execute();
$sql = $sql->fetch();
return $sql["name"];
}
あなたは私が$機能CNAME(内部でグローバル接続するのです見ることができるように)。それで、私は他のすべての機能にやります。本当に悪いですね。
私には何もしてもらえませんか?私はグローバル変数を持っていない場合は、未定義の関数を言う。私は、パラメータを追加することができます知っている
は、CNAME($接続し、1)
しかし、これは、私のために、他のようにずさんに見えます。そして、私は多くの機能を持っているので、私はいつもこの接続に追加のパラメータを含める必要があります。
私はこれについて何かできますか?余分なパラメータやグローバル変数はありませんか?
私は多分あなたがデータベースへのすべての通信を処理する1つの機能/クラス/オブジェクトを作ることができると思っていますが、どこから始めるべきか、どのようにすべきかはわかりません。
次のようになります。
dbQuery($ query);
ただし、bindValue()を指定することはできません。場合によっては、上記の例より複数の値をバインドする必要があります。
は本当に質問
私の知る限り、それを避けることはできません。 – JMichelB