您好,我是 MYSQL 的 PDO 新手,这是我的两个文件 1) index.php
require_once 'prd.php';
try{
$db = new PDO ('mysql:host=xxxx;dbname=xxx;charset=utf8', 'xxx', 'xxxx');
echo 'connectd';
}catch(PDOException $conError){
echo 'failed to connect DB' . $conError->getMessage ();
}
$conn = new prdinfo();
$conn->con($db);
Run Code Online (Sandbox Code Playgroud)
2) 产品.php
class prdinfo{function con($db){
try{
foreach($db->query("select * from products where vendor_id = 2" ) as $row){
$prod_id = $row ['product_id'];
echo '<br/>' . $prod_id;
}
}catch(PDOException $ex){
echo 'an error occured' . $ex->getMessage();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是在这里我可以将连接对象传递给每个文件,但是我有很多文件要使用数据库查询,所以我需要将 $bd 传递给所有文件。这给代码带来了负担。那么有什么方法可以将数据库与 PDO 连接起来。 谢谢
pdo.php,取自这里。人们经常忽略许多重要的连接选项,所以我不得不写一篇专门的文章来解释如何正确连接 PDO
product.php
<?php
class prdinfo
{
function __construct($db)
{
$this->db = $db;
}
function getVendor($vendor)
{
$sql = "select * from products where vendor_id = ?";
$stm = $this->db->prepare($sql);
$stm->execute(array($vendor));
return $stm->fetchAll();
}
}
Run Code Online (Sandbox Code Playgroud)
index.php
<?php
require 'pdo.php';
require 'product.php';
$info = new prdinfo($pdo);
$vendor = $info->getVendor(2);
foreach ($vendor as $row)
{
echo $row['product_id'];
}
Run Code Online (Sandbox Code Playgroud)
实现类自动加载而不是手动调用 require 也是一个好主意。
| 归档时间: |
|
| 查看次数: |
6980 次 |
| 最近记录: |