2013-01-03 108 views
1

经过很长时间的使用mysql我终于决定将所有内容迁移到PDO,因为之前正在折旧。从mysql迁移到PDO,没有连接到mysql服务器

我开始寻找到一些教程使用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,然后什么...没有关联的消息,也没有错误信息......任何你ghts问题是什么以及如何解决它?

PDO是最佳路线吗?或者我应该看看MySQLi呢?

EDIT

从结果的var_dump(PDO :: getAvailableDrivers()); Apache的

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

结果是error.log

PHP Fatal error: Call to undefined function PDO() in /path/to/file.php on line 33

回答

2

您错过了“新”关键字。

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

确保您打开error_reporting以捕获更多错误。

+0

哇...谢谢... ...我接受这个在4分钟内,当我可以...不能相信我错过了... ...xD –

0
charset=UTF-8 

should be

charset=utf8 

是的,去与PDO(我认为)。

另请参阅:开启error reporting,以便在出现错误时获得一些反馈,并学习如何报告PDO errors

编辑:另外,请参阅how to handle PDO errors as exceptions,因为您似乎期待。

+0

我试过'UTF-8'以及'utf8'都是在我跟着的教程中提到的,没有改变。 –

+0

打开错误报告,以便您可以看到任何错误;哦,和上面的两个答案指出明显的(我错过了!) – webaware

2

PDO class

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

Is PDO the best route? Or should I look into MySQLi instead?

的mysqli使用new非常类似于MySQL的,因此,它可能是比较熟悉的。
唯一不同的是,连接资源应该总是传递给任何mysqli函数,而不像mysql,它是可选的。

+0

由于我熟悉MySQL,你认为MySQLi会是一条更好的PDO路线,而不是重新学习所有的功能吗? –