Estoy haciendo un proyecto bastante extenso donde sigo un modelo con PDO y MVC donde en algunas de las páginas que cargan superamos las 25 conexiones a la base de datos y por lo tanto da problemas de conexión con el servidor actual que tenemos ya que tiene fijado ese límite de conexiones y me gustaría saber si alguna posibilidad de reducir las consultas las conexiones actuales ya que sino tendremos que cambiar a un servidor dedicado.
Por ejemplo utilizando este módulo en concreto para categorías que cargan en el menú salen 5 conexiones.
cabezote.php
Código PHP:
  
<!--=====================================
CATEGORÍAS
======================================-->
 
        <div class="col-xs-12 backColor" id="categorias">
 
            <?php
 
                $item = null;
                $valor = null;
 
                $categorias = ControladorProductos::ctrMostrarCategorias($item, $valor);
 
                foreach ($categorias as $key => $value) {
 
                    echo '<div class="col-lg-2 col-md-3 col-sm-4 col-xs-12">
                            
                            <h4>
                                <a href="'.$url.$value["ruta"].'" class="pixelCategorias">'.$value["categoria"].'</a>
                            </h4>
                            
                            <hr>
 
                            <ul>';
 
                            $item = "id_categoria";
 
                            $valor = $value["id"];
 
                            $subcategorias = ControladorProductos::ctrMostrarSubCategorias($item, $valor);
                            
                            foreach ($subcategorias as $key => $value) {
                                    
                                    echo '<li><a href="'.$url.$value["ruta"].'" class="pixelSubCategorias">'.$value["subcategoria"].'</a></li>';
                                }    
                                
                            echo '</ul>
 
                        </div>';
                }
 
            ?>    
 
        </div>
 
    </div>   Código PHP:
   <?php
 
class ControladorProductos{
 
    /*=============================================
    MOSTRAR CATEGORÍAS
    =============================================*/
 
    static public function ctrMostrarCategorias($item, $valor){
 
        $tabla = "categorias";
 
        $respuesta = ModeloProductos::mdlMostrarCategorias($tabla, $item, $valor);
 
        return $respuesta;
 
    }
 
    /*=============================================
    MOSTRAR SUBCATEGORÍAS
    =============================================*/
 
    static public function ctrMostrarSubCategorias($item, $valor){
 
        $tabla = "subcategorias";
 
        $respuesta = ModeloProductos::mdlMostrarSubCategorias($tabla, $item, $valor);
 
        return $respuesta;
 
    }
 
?>    Código PHP:
   <?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;
 
    }
?>    En general, ¿hay algún modo global de recudir todas estas conexiones o hacerlo de otra manera? Ya que como comento anteriormente al llevar esta parte a un proyecto mucho más extenso superamos las 25 y hasta 30 conexiones en algunas zonas de la web.
Saludos.
 
 






