PDO语句和阅读结果。基本
我得到这个功能丝毫PDO声明,但我做错了什么:( 而且我也知道什么....PDO语句和阅读结果。基本
它是:的foreach($结果作为$行); 这就是为什么我能'吨阅读:如果($行['积极'] ==='是')
但在我的搜索谷歌和堆栈我找不到写回答 有人可以看到什么是正确的方法是? 我还是有点新的PDO :)
thnx在先进。
include ('../../redir/mapping.php');
include ($dot2.$RMredir.$RFUserR);
$dbh = new PDO("mysql:host=".$Rhost.";dbname=".$RDB, $RDBsqlR, $RDBpassR);
$stmt = $dbh->prepare("SELECT * FROM `users` WHERE `email`=:email");
$stmt->bindParam(':email', $email,PDO::PARAM_STR);
$stmt->execute();
foreach ($result as $row);
if($stmt->rowCount() === 0)
{
$emailcheck = 'not_here';
}
else if($stmt->rowCount() === 1)
{
if($row['active'] === 'yes')
{
$emailcheck = 'here_and_active';
}
else if($row['active'] === 'no')
{
$emailcheck = 'here_and_not_active';
}
}
else
{
$emailcheck = 'error';
}
return $emailcheck;
你没有取任何东西。在您的代码中$结果为空:
使用fetch(PDO::FETCH_ASSOC);
来获取结果。尝试:
$dbh = new PDO("mysql:host=".$Rhost.";dbname=".$RDB, $RDBsqlR, $RDBpassR);
$stmt = $dbh->prepare("SELECT * FROM `users` WHERE `email`=:email");
$stmt->bindParam(':email', $email,PDO::PARAM_STR);
$stmt->execute();
$emailcheck = array();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount() === 0){
$emailcheck[] = 'not_here';
}
else if($stmt->rowCount() === 1){
foreach ($result as $row){
if($row['active'] === 'yes'){
$emailcheck[] = 'here_and_active';
}
else if($row['active'] === 'no'){
$emailcheck[] = 'here_and_not_active';
}
}
}
else{
$emailcheck[] = 'error';
}
var_dump($emailcheck);
为什么'{'在行尾'$ result = $ stmt-> fetch(PDO :: FETCH_ASSOC){'? – developerwjk 2015-03-18 23:08:51
@developerwjk是一个错字。更正! – 2015-03-18 23:10:04
thnx nishanth matha。 你的帮助很大。 我注意到你也使用var_dump而不是返回。 但var_dump在一个函数更好,然后返回命令? – hexedecimal 2015-03-19 05:31:47
在你做foreach($ result为$ row);','$ result'甚至没有被定义的位置(更不用说你的foreach是空的)。 – developerwjk 2015-03-18 22:50:38
你是否读过developerwjk这个问题? :) – hexedecimal 2015-03-18 22:52:34
您是否阅读过PDO手册或任何教程? “结果”不会自发产生。 – developerwjk 2015-03-18 22:55:02