gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 01:57:19 27 4
gpt4 key购买 nike

昨天我将基于 mysqli 的代码更改为 PDO。所以我对 PDO 语句很陌生。我在获取匹配的 MySQL 数据数量时遇到问题。

我搜索了如何获取受影响的行数。我遇到了 3 种方法:

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

  2. 使用 fetchAll() 然后计数 $var = $db->fetchAll();计数($var);

  3. 最后一个 rowCount()。

根据php手册

PDOStatement::rowCount() returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement executed by the corresponding PDOStatement object.

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

这是我的代码我用它来判断用户名(或电子邮件)是否已经注册。

$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 ? ";
}

我的代码有什么问题?

最佳答案

SELECT * FROM WHERE uye_ka = :kullanici_adi

实际上从哪里选择?需要指定表名

SELECT * FROM  myTable WHERE uye_ka = :kullanici_adi
^

第二个查询也是如此。

关于php - 无法使用 PDO 获取受影响的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25200100/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com