【发布时间】: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 是什么。