2016-01-22 38 views
0

我有一个PDO查询数据库中的一个不存在的用户来处理用户注册。问题是,如果找不到用户,var_dump和print_r都不会打印任何内容。var_dump和print_r什么都不显示,无法检查它存在于数据库中

try { 
     $stmt->execute(); 
     while($row = $stmt->fetch()) { 
      var_dump($row); 
      print_r($row); 
      if($row = null) { // Not working 
      # if(!isset($row)) { // Not working 
      # if(empty($row)) { // Also not working 
       echo "User not found"; 
      } else { 
       echo $row['realname']."<br>"; 
      } 
     } 
    } catch(PDOException $e) { 
     echo "FATAL ERROR OCCURED:".$e->getMessage(); 
    } 

这里发生了什么?该页面只是空白。

PHP -l的index.php repors没有语法错误和页面是不是在查看源代码抛出错误500

没有任何。

这里是连接的详细信息:

try { 
    $dbh = new PDO('mysql:host=127.0.0.1;dbname=PHP_PDO', "root", "root", array(
      PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION 
     )); 
} catch(PDOException $e) { 
    die("FATAL ERROR OCCURED"); 
} 

$stmt = $dbh->prepare("SELECT realname FROM users WHERE name = :name"); 

$stmt->bindParam(":name", $name); 

$name = "mivuckovaca"; // NOT IN DATA BASE 
+0

上面给出的代码中没有var_dump和print_r。 –

+0

对不起,修正了它。 – Gala

+0

如果使用'$ stmt-> execute(“:name”,$ name);'?还要检查'if(!$ stmt){ echo“\ nPDO :: errorInfo():\ n”; print_r($ dbh-> errorInfo()); }' –

回答

3

为什么它不工作的原因,是你在if($row = null)使用1个等号“分配”,而不是“比较” if($row == null) 2个等号(或3 “如果相同”,取决于你想要检查的内容)。

咨询:The 3 different equals在这里关于此Stack。

参考文献:

PHP看到了 “转让” 作为有效的语法,这就是为什么您没有收到任何错误。

1

原来我不得不重新组织代码。

我将$row = $stmt->fetch();带出while循环,并单独检查$行。像这样:

$stmt = $dbh->prepare("SELECT realname FROM users WHERE name = :name"); 

$stmt->bindParam(":name", $name); 

$name = "mivuckovaca"; // NOT IN DATABSE ON PURPOSE 

try { 
    $stmt->execute(); 
} catch(PDOException $e) { 
    echo "FATAL ERROR OCCURED:".$e->getMessage(); 
} 

$res = $stmt->fetchAll(); # Replaced fetch() with fetchAll() 

if(empty($res)) { 
    echo "User not found"; 
} else { 
    foreach($res as $row) { # replaced while() with foreach() 
     echo $row['realname']; 
    } 
} 
+0

啊,好吧。你会看看那个;-)我很高兴这件事情已经解决了。 –

+0

是的,这是一个没有想到就问问题的例子。好吧。 – Gala

+0

我们只是人类;-) –

相关问题