2013-02-28 40 views
0

行數爲什麼這個不行如何獲得與fetchColumn和bindParam

$sth = $pdo->prepare("SELECT * FROM tempusers WHERE tempusers.username = :username AND tempuser.email = :email AND password = :password"); 

    $sth->bindParam(':username', $register_data['username'], PDO::PARAM_STR); 
    $sth->bindParam(':email', $register_data['email'], PDO::PARAM_STR); 
    $sth->bindParam(':password', $register_data['password'], PDO::PARAM_STR); 
    $sth->execute(); 
    if($sth->fetchColumn() > 0) { 
     echo 'yes'; 
    }else{ 
     echo 'no'; 
    } 

,然後當我運行此代碼它的工作原理

$sth = $pdo->prepare("SELECT * FROM tempusers WHERE tempusers.username = :username"); 
    $sth->bindParam(':username', $register_data['username'], PDO::PARAM_STR); 
    $sth->execute(); 
    if($sth->fetchColumn() > 0) { 
     echo 'yes'; 
    }else{ 
     echo 'no'; 
    } 

當我嘗試使用更多的則在bindParam代碼崩潰的價值。爲什麼不能有更多的值來檢查?

+0

另一個錯字/缺少錯誤報告問題... – 2013-02-28 06:31:52

回答

0

要獲得fetchColumn行數,你必須與您的查詢選擇這個號碼

所以,與其

SELECT * FROM 

你必須使它

SELECT count(*) FROM 

你會有這個號碼。

bindParam必須像往常一樣使用,就像以前一樣。
但是,您必須避免在代碼中出現拼寫錯誤等錯誤。
當然,你必須設置適當的錯誤報告,使自己能夠發現所有的錯誤。

爲什麼這個不行

始終連接到PDO作爲tag wiki
描述,你就知道了。