我为什么要连接失败PDO

时间:2015-06-07 11:08:33

标签: php mysql

dbConnector.php

<?php

    class DbConnector {

    var $link;

    function DbConnector(){
            try{
                $this->link = new PDO('mysql:host=127.0.0.1;dbname=system', 'root', '123456');
                $this->link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                $this->link->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
            }catch(PDOException $e){
                die("this is not connected");
            }

        }

      //*** Function: query, Purpose: Execute a database query ***
      // this function fail to connect
    function query($query) {
        try{
        $this->link->prepare($query);
        }catch(PDOException $e){
            die("fail to prepare");
        }
        return $this->link->prepare($query);
    }

    }

    ?>

check.php

<?php
include("dbConnector.php");
$connector = new DbConnector();

$username ='';

$query = "SELECT air_users FROM USER_NAME WHERE username = ? LIMIT 1";
$result = $connector->query($query);
$result->execute(array($username));

$num = $result->rowCount();
$num = $result->fetch();

echo $num;
// mysql_close();
?>

我收到了返回错误

  

未能准备

我做错了什么?我仔细检查了它,但无法弄清楚错误,我无法将其连接到我的数据库。

它只是给我一个错误。

1 个答案:

答案 0 :(得分:0)

你使用了try / catch,这很棒,但你的问题是你只是回应有问题,而不是问题所在。

如果您从异常中打印出错误消息,我相信您会获得更多关于它为什么不准备的信息:

try {
    $this->link->prepare($query);
} catch(PDOException $e){
    die($e->getMessage());
}

或者只是临时删除try / catch块并让异常消失并在测试时显示在浏览器中。