【问题标题】:PDO MYSQL Why not working?PDO MYSQL 为什么不工作?
【发布时间】:2015-07-23 05:30:20
【问题描述】:

我不知道为什么它没有任何帮助? :)

返回 0;

$stmt3=$db->query('SELECT COUNT(*) as "ilosc" FROM plat_user WHERE `imie`="'.$_POST['imie'].'" AND `nazwisko`="'.$_POST['nazwisko'].'" AND `nip`="'.$_POST['nip'].'" AND `email`="'.$_POST['email'].'" AND `grupa`=1');
$stmt3->execute();
$row3 = $stmt3->fetch();
echo $row3['ilosc']; 

此代码有效并且(返回 1):

$rowy = mysql_num_rows(mysql_query('SELECT COUNT(*) as "ilosc" FROM plat_user WHERE `imie`="'.$_POST['imie'].'" AND `nazwisko`="'.$_POST['nazwisko'].'" AND `nip`="'.$_POST['nip'].'" AND `email`="'.$_POST['email'].'" AND `grupa`=1'));

在 phpmyadmin 中生成的查询很好,它返回 1 我不知道为什么 PDO 返回 0

【问题讨论】:

  • SELECT COUNT() 将始终返回 1 行,但计数的值可能为零,那么这里的实际问题是什么?您是否考虑过记录生成的 SQL 并手动验证?
  • 您的AS 语法错误。将表名和列名用反引号而不是引号括起来。
  • 在 mysql 中该查询返回 1,这很好,但在 PDO 中该查询返回 0,现在为什么。
  • 这两个代码sn-ps也有SQL注入漏洞。阅读本网站或一般网络上的信息,了解如何解决此问题。
  • 这里需要进行一些调试。最好将 SQL 创建为单独的字符串变量$sql,然后执行它,因此您也可以根据需要回显它。请现在就这样做,并在您的问题中提出 SQL 是什么。

标签: php mysql pdo


【解决方案1】:

试试吧:

$stmt3=$db->query('SELECT COUNT(*) as "ilosc" FROM plat_user WHERE `imie`="'.$_POST['imie'].'" AND `nazwisko`="'.$_POST['nazwisko'].'" AND `nip`="'.$_POST['nip'].'" AND `email`="'.$_POST['email'].'" AND `grupa`=1');
$stmt3->execute();
$row3 = $stmt3->fetch(PDO::FETCH_ASSOC); // changes here
echo $row3['ilosc']; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-06
    • 2016-03-28
    • 1970-01-01
    • 2022-12-03
    • 2018-02-23
    • 2016-04-19
    • 2013-08-25
    • 2015-01-22
    相关资源
    最近更新 更多