【发布时间】:2018-04-17 02:29:17
【问题描述】:
我正在尝试计算数据库中与通过 POST 方法获取的电子邮件地址相同的电子邮件地址的数量。但似乎这段代码无法正确计算数字,而是返回一个空格。我的 PHP 代码有问题吗?感谢您抽出宝贵时间。
<?php
require_once('PHP/function.php');
$mail = $_POST['email'];
$sql = "select count(*) as num from `xxxx` where `mail` = '{$mail}' ;";
$count = mysqlPDO($sql);
$count = $count[0]["count(*)"];
echo "number of the same email adress:\n".$count;
?>
function.php 在下面;
<?php
function mysqlPDO($sql){
$dsn = 'mysql:dbname=aaaaa;host=localhost';
try{
$dbh = new PDO($dsn,'xxx','zzzzzzz');
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$stmt = $dbh -> query("SET NAMES utf8;");
$stmt = $sth= $dbh->prepare($sql);
$sth->execute(array());
$result=$sth->fetchall(PDO::FETCH_ASSOC);
}catch (PDOException $e){
$result = "error";
}
return $result;
}
?>
【问题讨论】:
-
将
$count = $count[0]["count(*)"];更改为$count = $count[0]["num"]; -
您已经为
count(*) as num创建了别名,只需访问索引num -
如果你只是直接在
$sql中注入变量,那么拥有->prepare()d有什么用,就像用撬棍敲钉子一样 -
感谢您的建议!我试过'$count = $count[0]["num"];'访问计数,但似乎效果不佳......
-
您能否在
$count = mysqlPDO($sql);之后添加var_dump($count);并告诉我们您得到了什么。谢谢
标签: php sql database pdo count