Ok, supongo entonces que ahora quedaría algo así como este ejemplo:
conexion.php
Código PHP:
Ver original// Nueva conexión singleton
class Conexion {
// Crea solo una instancia de la clase (patrón Singleton)
private static $_instance = false;
public static function conectar() {
// Verificar si no se ha realizado la conexión
if(self::$_instance === false) {
// Conectamos a la base de datos
try {
// Verifico que los parámetros sea correctos.
self::$_instance = new PDO("mysql:host=localhost;dbname=nombrebd",
"root",
"",
array(PDO
::ATTR_ERRMODE => PDO
::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
);
//Intento ver en el código fuente las actuales conexiones a la BD.
echo "Acabo de conectarme FW final";
} catch (PDOException $e) {
//Manejo de errores, esto solo es ejempl.o
die('No se puede establecer una conexión a base de datos.'); }
}
return self::$_instance;
}
}
productos-modelo.php
Código PHP:
Ver original<?php
require_once "conexion.php";
class ModeloProductos{
/*=============================================
MOSTRAR CATEGORÍAS
=============================================*/
static public function mdlMostrarCategorias($tabla, $item, $valor){
if($item != null){
$stmt = Conexion::conectar()->prepare("SELECT * FROM $tabla WHERE $item = :$item");
$stmt -> bindParam(":".$item, $valor, PDO::PARAM_STR);
$stmt -> execute();
return $stmt -> fetch();
}else{
$stmt = Conexion::conectar()->prepare("SELECT * FROM $tabla");
$stmt -> execute();
return $stmt -> fetchAll();
}
$stmt -> close();
$stmt = null;
}
/*=============================================
MOSTRAR SUB-CATEGORÍAS
=============================================*/
static public function mdlMostrarSubCategorias($tabla, $item, $valor){
$stmt = Conexion::conectar()->prepare("SELECT * FROM $tabla WHERE $item = :$item");
$stmt -> bindParam(":".$item, $valor, PDO::PARAM_STR);
$stmt -> execute();
return $stmt -> fetchAll();
$stmt -> close();
$stmt = null;
}
Ahora parece que va todo perfectamente e incluso que solo aparece en total una vez "Acabo de conectarme FW final" como aviso de conectado.
También me han sugerido otra opción que aun no he logrado adaptar bien a este método que sería con
PDOStatement::closeCursorphp
¿Alguna otra sugerencia o mejora o ya con esto estaría todo arreglado?
Gracias de nuevo.
Saludos.