2012-04-10 7 views
-2

私は、PHPのPHP for PDOのin&outを学習しています。私の質問は、実行ごとに複数の異なるMySQL文を実行する必要がある場合、それぞれ新しい(異なる)文の前に$pdo = new PDO(...);を定義する必要がありますか?複数のPDOステートメントの実行

$pdo = new PDO(...); 
$sql = $pdo->prepare('SELECT userid, email FROM users WHERE email = :email AND password = :password'); 
$sql->execute(array(':email' => $_POST['email'], ':password' => md5($_POST['password']))); 
$result = $sql->fetchObject(); 

$sql = $pdo->prepare('UPDATE users SET access_count = access_count + 1, timestamp_last_access = :timestamp WHERE userid = :userid'); 
$sql->execute(array(':timestamp' => TIMESTAMP, ':user_id' => $result->user_id)); 
$result = $sql->fetchObject(); 

は、私が$pdo = new PDO(...);の新しいインスタンスを呼び出す必要があるか、私は、スクリプトの完全な実行を通じてオープンそれを維持することができますか?

+1

あなた自身でテストするのに30秒かかりません。 – kba

+0

私はより効率的であると思っています、私はそれが動作することを知っていますが、それは/効率的な推奨ですか? – ATLChris

+0

ベストプラクティスの問題がある場合は、それを1つとして尋ねます。以下の答えが示すとおり、誰もあなたの質問ではないので、推奨されているかより効率的であるかについて何も言いません。 – kba

答えて

2

をなし、PDOはPHPでちょうど別のクラスです。ここでは、1つのインスタンスを実証するための簡単な例を示します。

class Test { 
    private $i = 0; 

    public function increment() { 
     $this->i++; 
     return $this->i; 
    } 
} 

$test = new Test(); 
echo $test->increment(); // 1 
echo $test->increment(); // 2 
echo $test->increment(); // 3 
+0

'return ++ $ this-> i;'に短縮することができます。言ってるだけ' :) –

3

あなたはそれの別のインスタンスを作成する必要はありません:)

あなたはこのを読む与える必要があります: - OOP: The Basics

関連する問題