2012-04-10 89 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