从mysql迁移到PDO,不连接到mysql服务器

时间:2013-01-03 06:27:09

标签: php mysql pdo

使用mysql很长一段时间后,我最终决定将所有内容迁移到PDO,因为先前已经过折旧。

我开始研究一些使用PDO的教程,从一开始我就遇到了问题......

我正在跑步:

  

Apache(v2.2.22)
  MySQL(v5.5.28)
  PHP5

我在PHP中使用以下代码块:

try{
    echo "PDO Connecting";
    $Connection = PDO("mysql:host=localhost;dbname=my_database;charset=UTF-8", "username", "passwd");
    echo "Connected";
}catch(PDOException $ex){
    echo "Error!";
}

我的问题是,我看到了消息PDO Connecting,然后没有...没有连接的消息,也没有错误消息......有什么想法是什么问题以及如何解决它?

PDO是最好的路线吗?或者我应该研究一下MySQLi吗?

修改

var_dump(PDO :: getAvailableDrivers());

的结果
  

array(2){[0] => string(5)“mysql”[1] => string(6)“sqlite”}

Apache error.log的结果

  

PHP致命错误:在第33行的/path/to/file.php中调用未定义的函数PDO()

4 个答案:

答案 0 :(得分:2)

您错过了“新”关键字。

    $Connection = new PDO(......)

确保启用error_reporting以捕获更多错误。

答案 1 :(得分:2)

new用于PDO class

$Connection = new PDO("mysql:host=localhost;dbname=my_database;charset=UTF-8", "username", "passwd");

答案 2 :(得分:1)

  

PDO是最好的路线吗?或者我应该研究一下MySQLi吗?

Mysqli非常类似于mysql,所以,它可能更熟悉 唯一不同的是连接资源应该总是传递给任何mysqli函数,不像mysql,它是可选的。

答案 3 :(得分:0)

charset=UTF-8

should be

charset=utf8

是的,请使用PDO(我的意见)。

另外:启用error reporting,以便在收到错误时获得一些反馈,并了解如何举报PDO errors

编辑:另请参阅how to handle PDO errors as exceptions,正如您所期待的那样。