Привет, я новичок в PDO с MYSQL, вот мои два файла: 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);
2) product.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(); } } }
моя проблема здесь, я могу передать объект подключения в каждый файл, но у меня так много файлов для использования запросов к базе данных, поэтому мне нужно передать $ bd ко всем файлам. это налагает нагрузку на код. так можно ли подключить базу данных к PDO. благодаря
1) pdo.php, только три строки:
<? $pdo = new PDO ('mysql:host=xxxx;dbname=xxx;charset=utf8', 'xxx', 'xxxx'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
2) 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(); } }
-<?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(); } }
3) 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']; }
Самый простой способ сделать это – подключиться к базе данных в отдельном файле, таком как «database.php», и затем вы можете включить этот файл на каждую новую страницу, которую вы создаете … например, если вы создаете страницу типа «dothis.php », затем в верхней части страницы dothis.php напишите заявление include_once ('/path/to/your/file/database.php');
затем вы можете использовать свой объект $db
во всем файле, где хотите.
Что вы можете сделать, так это создать файл PHP, скажем, «pdoconn.php». В этом файле подготовьте этот объект $db
. Наконец, для каждого из ваших файлов PHP просто pdoconn.php
. Таким образом, пока ваши файлы PHP загружаются, они сначала подключаются к MySQL и предоставляют вам объект $db
.