首页 文章

无法使用PDO获取受影响的行数

提问于
浏览
2

昨天我将基于mysqli的代码更改为PDO . 所以我对PDO语句很新 . 我在获取匹配的MySQL数据的数量方面遇到了问题 .

我已经搜索了如何获得受影响的行数 . 我遇到了3种方法:

  • 在SQL语句中使用COUNT(*) SELECT COUNT(*) FROM blah WHERE blah = :blah

  • 使用fetchAll()然后计算 $var = $db->fetchAll(); count($var) ;

  • 最后一个rowCount() .

根据php手册

PDOStatement :: rowCount()返回受相应PDOStatement对象执行的最后一个DELETE,INSERT或UPDATE语句影响的行数 .

所以我没有尝试rowCount() . 我先试了两个选项 . 他们没有工作 . 我不知道我的代码有什么问题 .

Here's my code 我用于是否已注册用户名(或电子邮件) .

$sql = "SELECT * FROM WHERE uye_ka = :kullanici_adi";
$ka_varmi = $db_uye->prepare($sql);
$ka_varmi->bindParam(':kullanici_adi',$kullanici_adi,PDO::PARAM_STR,255);
$ka_varmi->execute();
$ka_sonuc = $ka_varmi->fetchAll();

if (count($ka_sonuc)) {
    $form_hata = true;
    $ka_ayni = true; 
    $kayit_msg[] = "Seçtiğin kullanıcı adı başka bir kullanıcı tarafından daha önceden alınmış Başka bir tane dene";
}

$sql2 = "SELECT * FROM WHERE uye_e_posta = :e_posta";
$e_varmi = $db_uye->prepare($sql2);
$e_varmi->bindParam(':e_posta',$kullanici_adi,PDO::PARAM_STR,255);
$e_varmi->execute();
$e_sonuc = $e_varmi->fetchAll();

if (count($e_sonuc)) {
    $form_hata = true;
    $e_ayni = true;
    $kayit_msg[] = "Girdiğin e-posta adresi daha önceden kullanılmış. Şifreni mi unuttun ? ";
}

我的代码出了什么问题?

1 回答

  • 3
    SELECT * FROM WHERE uye_ka = :kullanici_adi
    

    从哪里选择?您需要指定表名

    SELECT * FROM  myTable WHERE uye_ka = :kullanici_adi
                   ^
    

    对于第二个查询也是如此 .

相关问题