PHP - Hacer una sola vez conexión a la base de datos de SQL SERVER en un script

 
Vista:
sin imagen de perfil
Val: 126
Ha aumentado su posición en 12 puestos en PHP (en relación al último mes)
Gráfica de PHP

Hacer una sola vez conexión a la base de datos de SQL SERVER en un script

Publicado por German David (54 intervenciones) el 18/01/2021 12:44:24
Cordial saludo.
Dentro de mi sitio web, tengo una pagina que se conecta a una base de datos y muestra una tabla.
Deseaba mostrar mas de una tabla pero encuentro que cada que voy a mostrar una tabla, debo poner nuevamente la conexión a sql_server en el script.

Agradezco me indiquen si existen una forma de lograr que la conexión a SQL server permanezca disponible a lo largo de mi script para poder utilizarla a lo largo de este.

Así comienza mi script:

1
2
3
4
5
6
7
8
<?php
include 'DireccionarIndex.php';
include 'ConexionSqlServer.php';
$año=$_POST['año'];
$semana=$_POST['semana'];
$sql_query="SELECT * FROM [dbo].[fnTbCtmEstado]($año,$semana)";
$stml=sqlsrv_query($con,$sql_query);
?>

Luego de que hago la primer tabla, noto que para hacer la segunda, debe poner nuevamente este bloque de código.

En esta pagina en particular, debo poner tres tablas, así que deseo saber cual seria la forma de manejarlo y que no me llene de código.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Hacer una sola vez conexión a la base de datos de SQL SERVER en un script

Publicado por anonymous (53 intervenciones) el 18/01/2021 13:55:01
No muestras como tienes el código en: ConexionSqlServer.php

Pero una aplicación web debe estar cerrando la conexión una vez que se haga lo que se solicite.

Pues en un aplicativo web no estás tú solo conectado, hay múltiples usuarios conectados simultáneamente.

La conexión debe estar aparte en una clase que se invoca cada que se requiera y siempre que termine de hacer algo debo hacer un sqlsrv_close( $cn );

La recomendación es conectar bajo demanda y eso debe estar en un DAO aparte para no mezclar código, la red y los recursos no son propios, no te olvides que hay muchos usuarios conectados al tiempo y si lo haces como pretendes, estás consumiendo recursos innecesarios, poniendo un servidor de rodillas a trabajar de más, y tus usuarios van a experimentar lentitud en lo que hacen.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 126
Ha aumentado su posición en 12 puestos en PHP (en relación al último mes)
Gráfica de PHP

Hacer una sola vez conexión a la base de datos de SQL SERVER en un script

Publicado por German David (54 intervenciones) el 19/01/2021 12:18:34
Cordial saludo.

Esta es la forma como hago la conexión a la base de datos.

1
2
3
4
5
<?php
$severName="server"; /
$conectionInfo=array("Database"=>"dbase","UID"=>"usuario","PWD"=>"clave");
$con=sqlsrv_connect($severName,$conectionInfo);
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Hacer una sola vez conexión a la base de datos de SQL SERVER en un script

Publicado por anonymous (53 intervenciones) el 19/01/2021 13:20:58
Así como está no tienes ninguna clase creada para ello, lo ideal es que sea una clase exclusiva para esa conexión con un método que me permita llamarle recursivamente, cada que se requiera, algo parecido a esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Conexion {
 
    public static function obtenerConexion()
    {
        $server   = 'localhost';
        $username = 'XXX';
        $password = ''YYY;
        $database = 'MyDB';
 
        try
        {
            $conexion = new mysqli($server, $username, $password, $database);
            if (mysqli_connect_errno())
            {
                die("No se puede conectar a la base de datos");
            }
            else
            {
               return($conexion);
            }
        }
        catch (Exception $ex)
        {
           echo $ex;
        }
    }
}

Luego cada que se requiera llamo el método: obtenerConexion() y lo asigno a una variable, y desde luego cada que haga algo cerrar conexión, parecido a esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public function XXXX($vable)
{
    $cn = Conexion::obtenerConexion();
    try
    {
        Instrucciones....
 
    mysqli_close($cn); // NO olvidarse de cerrar siempre la conexión
    }
    catch (Exception $ex)
    {
        mysqli_close($cn); // Y en caso de caer en un exception igual también cerrarle
        echo $ex;
    }
}

Ahora esto es decisión de cada quien, tu puedes programar como se te antoje y escribir código de la forma en que te sientas cómodo, ya que sea eficiente y óptimo para un aplicativo web es otro paseo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 126
Ha aumentado su posición en 12 puestos en PHP (en relación al último mes)
Gráfica de PHP

Hacer una sola vez conexión a la base de datos de SQL SERVER en un script

Publicado por German David (54 intervenciones) el 19/01/2021 14:34:48
Gracias por la informacion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Hacer una sola vez conexión a la base de datos de SQL SERVER en un script

Publicado por Mauro (1047 intervenciones) el 19/01/2021 13:34:41
Lo que puedes usar son conexiones persistentes. Del lado de los scripts deberás abrir y cerrar la conexión cada vez que la necesites (No en cada consulta si no en cada script) pero a más bajo nivel siempre estarás usando la misma conexión.

Te dejo este ejemplo para MySQL (Para SQL Server es muy similar)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 126
Ha aumentado su posición en 12 puestos en PHP (en relación al último mes)
Gráfica de PHP

Hacer una sola vez conexión a la base de datos de SQL SERVER en un script

Publicado por German David (54 intervenciones) el 19/01/2021 14:35:07
Exelente,muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Hacer una sola vez conexión a la base de datos de SQL SERVER en un script

Publicado por joel (1269 intervenciones) el 19/01/2021 15:47:05
Hola Mauro, esa pagina da error 404!! puedes solucionarlo o indicar la url correcta?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Hacer una sola vez conexión a la base de datos de SQL SERVER en un script

Publicado por Mauro (1047 intervenciones) el 20/01/2021 02:31:13
Hola Joel!

Gracias por el aviso, creo que ahí está corregido el problema :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar