2013-02-28 4 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

другой опечатка/погрешность сообщение вопрос ... –

ответ

0

Чтобы получить количество строк с fetchColumn, вы должны выбрать этот номер с вашим запросом

Таким образом, вместо

SELECT * FROM 

вы должны сделать его

SELECT count(*) FROM 

и у вас будет этот номер.

bindParam должен использоваться как обычно, так же, как вы это делали раньше.
Однако вы должны избегать опечаток и подобных ошибок в коде.
И, конечно же, вам нужно настроить правильную отчетность об ошибках, чтобы вы могли обнаружить все ошибки.

Почему это не работает

Всегда подключиться к PDO, как описано в tag wiki
и вы будете знать.