2012-04-10 116 views
-2

我正在學習PHP的PDO for MySQL的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 2012-04-10 14:00:08

+0

我想知道什麼是更有效率,我知道它的工作原理,但它是推薦/高效? – ATLChris 2012-04-10 14:09:07

+0

如果這是一個最佳實踐問題,那就問它是一個問題。正如下面的答案所表明的,沒有人會說什麼是推薦的或更高效的,只是因爲那不是你的問題。 – kba 2012-04-10 14:10:38

回答

2

沒有,PDO是PHP只是另一個類。這裏有一個簡單的例子來演示一個實例...

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;'。只是在說' :) – 2012-04-10 14:03:49