如何在一个php页面中创建2个或更多PDO对象?

时间:2015-01-21 13:36:06

标签: php object pdo

您好我有一个代码,其中有一个像这样的pdo对象:

$db = new PDO('mysql:host='.$servername.'; dbname='.$db.';charset=utf8' , $db_username, $db_password);

那很好但是当我想用另一个名字创建另一个PDO对象时我会进入同一页面:

$dbh = new PDO('mysql:host='.$servername.'; dbname='.$db.';charset=utf8' , $db_username, $db_password);
$notification_array = $dbh -> prepare("select * from `machines`ORDER BY id DESC limit 51 ");

php说:

 Catchable fatal error: Object of class PDO could not be converted to string

我认为我必须要制作最后一个PDO对象($ db)NULL! 像这样:

$db = null;
$dbh = new PDO('mysql:host='.$servername.'; dbname='.$db.';charset=utf8' , $db_username, $db_password);
$notification_array = $dbh -> prepare("select * from `machines`ORDER BY id DESC limit 51 ");

但通过这种方式我的代码不起作用,也不读表 如何在页面中创建2个simllar Pdo对象?我需要它让它们彼此相邻

2 个答案:

答案 0 :(得分:3)

在     $db = new PDO('mysql:host='.$servername.'; dbname='.$db.';charset=utf8' , $db_username, $db_password); 您对pdo对象和dbname使用相同的变量名$db 你应该用     dbname='.$dbname 例如。

答案 1 :(得分:3)

将您的第一个连接命名为$ con或者其他内容,因为您已经在数据库名称中使用了$ db变量。

如果您要连接到同一个数据库,并使用与您相同的变量进行判断,则无需关闭连接并在查询之间重新打开它。

$con = new PDO($db,$name,$pass);
$con->query();
//do what you want with your query

$con->query();
//and then just move on to your next query