2015-03-18 32 views
-1

我得到这个功能丝毫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; 
+0

在你做foreach($ result为$ row);','$ result'甚至没有被定义的位置(更不用说你的foreach是空的)。 – developerwjk 2015-03-18 22:50:38

+0

你是否读过developerwjk这个问题? :) – hexedecimal 2015-03-18 22:52:34

+1

您是否阅读过PDO手册或任何教程? “结果”不会自发产生。 – developerwjk 2015-03-18 22:55:02

回答

1

你没有取任何东西。在您的代码中$结果为空:

使用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); 
+0

为什么'{'在行尾'$ result = $ stmt-> fetch(PDO :: FETCH_ASSOC){'? – developerwjk 2015-03-18 23:08:51

+0

@developerwjk是一个错字。更正! – 2015-03-18 23:10:04

+0

thnx nishanth matha。 你的帮助很大。 我注意到你也使用var_dump而不是返回。 但var_dump在一个函数更好,然后返回命令? – hexedecimal 2015-03-19 05:31:47