Te recomiendo veas esta entrada en caso quieras conocer mas detalladamente este patrón y sus limitaciones.
<?php class Singleton { // Ubicación: TuServidor/Clases/Singleton.php public $db; private static $dns = "mysql:host=tuServidor;dbname=tuBasedeDatos"; private static $user = "Usuario"; private static $pass = "tuPassword"; private static $instance; public function __construct () { $this->db = new PDO(self::$dns,self::$user,self::$pass); } public static function getInstance() { if(!isset(self::$instance)) { $object= __CLASS__; self::$instance=new $object; } return self::$instance; } } ?>Creamos un nuevo archivo php y especificamos la clase Implementacion, esta se encargara de realizar operaciones sobre una tabla especifica, para ello realiza la conexión sobre la base de datos utilizando el patrón Singleton implementado en la clase Singleton.php
<?php require_once "Singleton.php"; class Implementacion { // Ubicación: TuServidor/Clases/Implementacion.php public function validar($codigo) { $cc = Singleton::getInstance(); $sql = "SELECT count(*) FROM products WHERE categoryid=:codigo "; $result = $cc->db->prepare($sql); $params = array("codigo" => $codigo); $result->execute($params); $affected_rows = $result->fetchColumn(); return ($affected_rows); //retorna numerico } public function Datos($codigo) { $cc = Singleton::getInstance(); $sql="SELECT * from products where categoryid=:codigo"; $result = $cc->db->prepare($sql); $params = array("codigo" => $codigo); $result->execute($params); return ($result); //retorna conjunto de datos } public function NuevoCategoria($nombre,$descripcion) { $cc = Singleton::getInstance(); $sql = "Insert into categories(nombre,descripcion)"; $sql .= " values( "; $sql .=" :nombre,:description)"; $result = $cc->db->prepare($sql); $params = array("nombre" =>$nombre, "descripcion" => $descripcion); $result->execute($params); } } ?>Ahora desde un archivo PHP comun y corriente hacemos uso de las clases definidas anteriormente aprovechando la programación orientada a objetos, te recomiendo adecuar las validaciones necesarias.
<?php // Ubicacion:TuServidor require_once("Clases/Implementacion.php"); $aproducts = new Cproducts; $affected_rows=$aproducts->validar($codigo); $result=$aproducts->Datos($codigo); foreach($result as $row) { echo($row['productname']); } ?>