【问题标题】:Error with PDO in this script | The page turn blank此脚本中的 PDO 错误 |页面变为空白
【发布时间】:2015-07-07 08:55:10
【问题描述】:

我在这个脚本中使用 PDO 时遇到了一个奇怪的问题。可能问题很简单,但我找不到它,这让我抓狂。 问题是当我启动脚本时页面变成空白。

<?php

    //PDO
if(isset($_POST['submit'])) {   
    // test row

    $password = $_POST['upassword'];
    $email = $_POST['email'];
    $_SESSION['email'] = $email;

    $servername = "localhost";
    $username = "root";
    $password = "passwordxyz";
    $dbname = "abcd";

    try {
        $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $statement = $conn->prepare('SELECT `password` FROM `users` WHERE `email` = :email');  
        $statement->bindParam(':email', $email);  
        $statement->execute();  
        while($row = $statement->fetch() ){  
            echo 'ok';  
        }       
    }
} 


?>

请帮我解决问题。 谢谢。

【问题讨论】:

  • “500 内部服务器错误”状态码(或空白页)表示您的脚本正在抛出错误,但您尚未配置 PHP 以显示错误消息。这是您在更进一步之前需要解决的问题;如果没有错误消息的帮助,就不可能正确编码。这是brief explanation。错误报告的经验法则是:在开发中显示,在生产中登录。
  • 感谢您的回答,我打开了错误消息,它说:致命错误:无法使用 try without catch or finally in /var/www/core/login.php on line 41

标签: php mysql pdo


【解决方案1】:

您有 try 子句,但没有 catch 这是产生错误的原因。

<?php

//PDO
if(isset($_POST['submit'])) {   

$password = $_POST['upassword'];
$email = $_POST['email'];
$_SESSION['email'] = $email;
$servername = "localhost";
$username = "root";
$password = "passwordxyz";
$dbname = "abcd";

try{
      $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
      // set the PDO error mode to exception
      $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $statement = $conn->prepare('SELECT `password` FROM `users` WHERE `email` = :email');  
      $statement->bindParam(':email', $email);  
      $statement->execute();  
      while($row = $statement->fetch() ){  
          echo 'ok';  
      }
   }
catch(Exception $e){
        //change from general to specific exception and handle here
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    相关资源
    最近更新 更多