2014-04-13 137 views
0

我是新来使用PDO,但我有点使用bindParam函数混淆。是否有可能避免使用bindParam?如果不是 - 为什么?PDO BindParam捷径?

我使用的是像一个存储过程,

$e = '[email protected]'; 
$p = 'pass123'; 
$stmt = $dbh->prepare("CALL GetUserByEmail($e, $p)); 
$stmt->execute(); 

然后我想检查结果表多少结果有..为什么我也不知道怎么做 - 我习惯使用mysqli_函数。谢谢!

+1

在'$ stmt->的execute();'你可以通过项目的排列顺序它们出现在查询 – Class

回答

0

当您有准备好的语句时,请调用execute函数,参数数组作为唯一参数。

命名参数和'有序'参数之间有一个区别:第一个有一个名称(关联数组),后者只有一个位置(正常数组)。

实施例:

$stmt = $dbh->prepare("CALL GetUserByEmail(?, ?)"); 
$stmt -> execute(array($e, $p)); 

$stmt = $dbh->prepare("CALL GetUserByEmail(:emails, :passwords)"); 
$stmt -> execute(array(':emails' => $e, ':passwords' => $p)); 

另请参阅文档:http://www.php.net/manual/en/pdostatement.execute.php


要获得行的量,则调用结果rowCount功能:

$stmt -> rowCount(); // Amount of rows selected 
+0

而$ stmt-> rowCount()会在执行正确后调用? – user3389343

+0

是的。确切地说...... – Hidde

+0

它在你传递给你执行的数组中的':names'和':password'前面有':'。看到你自己的文档链接,例2 –