2015-02-09 3 views
1

Я пытаюсь сделать запрос PDO ниже работы, но почему-то это не так. Вот как я взорвался в мозгу! Есть ли кто-нибудь, кто может сказать, что я неправ?PDO и rowcount

$dbh = new PDO("mysql:host=localhost;dbname=databasename", "user", "pass"); 
    $stmt = $dbh->prepare("SELECT * FROM `something` WHERE `email`=':email' and `name`=':name'"); 
    $stmt->bindParam(':email', '[email protected]',PDO::PARAM_STR); 
    $stmt->bindParam(':name', 'name',PDO::PARAM_INT); 
    $stmt->execute(); 

    if($stmt->rowCount() == 1) 
    { 
     echo "row count 1"; 
    } 
    else if ($stmt->rowCount() == 0) 
    { 
     echo "row count 0"; 
    } 
    else if ($stmt->rowCount() > 1) 
    { 
     echo "row count greater then 1"; 
    } 

ответ

1

Одинарные кавычки (') обозначают строковые литералы в SQL, поэтому предотвратить PDO от разбора внутри них. Если вы хотите использовать переменные связывания, вы должны удалить кавычки (не беспокойтесь, PDO будет правильно обрабатывать их как строки):

$stmt = $dbh->prepare 
     ("SELECT * FROM `something` WHERE `email`=:email and `name`=:name"); 
+0

THNX !!!!! :) Это всегда те st ** pid d * mnn цитаты :) – hexedecimal

Смежные вопросы