我正在尝试计算数据库中与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;
}
?>
答案 0 :(得分:2)
我不熟悉PDO的做事方法。但根据我在执行SELECT语句后所做的研究ref this
应该返回与$ _POST电子邮件地址匹配的行数。
$sth->fetchColumn();