2013-07-10 59 views
0

如何將其作爲PDO查詢運行?運行PDO mysql_num_rows查詢

$query = "SELECT * FROM `Top_10` WHERE DOB =". $date; 
$result = mysql_query($query) or die(mysql_error()); 
if(mysql_num_rows($result)==0){ 
while blah blah 
} 

我可以運行PDO讀取數組。但只要我這樣做,它就會失敗。

任何想法?

+0

太糟糕了,您不會顯示等效的基於PDO的代碼,並告訴我們它是如何失敗的。另外''SELECT * FROM''Top_10'' WHERE DOB =「。 $ date'的效率非常低,並且SQL注入容易。性能問題可以通過''SELECT COUNT(*)FROM''Top_10''來解決WHERE DOB = ...''' – fvu

回答

0
$dbh = new PDO("mysql:dbname=$dbname", $user, $password); 
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE); 

try { 
    $qry = $dbh->prepare('SELECT * FROM Top_10 WHERE DOB = ?'); 
    $qry->execute([$date]); 

    while ($row = $qry->fetch()) { 
    // blah blah blah 
    } 
} 
catch (PDOException $e) { 
    die($e->getMessage()); 
}