【问题标题】:how to create 2 or more PDO objects in one php page?如何在一个 php 页面中创建 2 个或更多 PDO 对象?
【发布时间】:2015-01-21 13:36:05
【问题描述】:

您好,我有一个代码,其中有一个像这样的 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 个类似的 Pdo 对象?我需要它让他们彼此相邻

【问题讨论】:

  • 重命名第一个 PDO 对象的变量。
  • 你到底是什么意思?
  • 数据库名称存储在名为 $db 的变量中。
  • 您正在重新使用$db,第一个作为连接,第二个作为@bbldzr 所说的数据库名称。然后在新的 PDO 连接中再次使用它。您需要在第一个实例和第二个实例中更改 dbname='.$db.'
  • @JayBlanchard tnx 就是这样

标签: php object pdo


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    将您的第一个连接命名为 $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
    

    【讨论】:

      猜你喜欢
      • 2018-03-09
      • 1970-01-01
      • 2019-08-21
      • 2019-07-31
      • 2016-02-28
      • 2013-08-05
      • 1970-01-01
      • 1970-01-01
      • 2015-11-12
      相关资源
      最近更新 更多