Foros del Web » Programando para Internet » PHP »

sqlsrv_query dentro de funcion php

Estas en el tema de sqlsrv_query dentro de funcion php en el foro de PHP en Foros del Web. Buenas, Tengo problemas para ejecutar código SQL Server dentro de una función PHP, el panorama es el siguiente: conex.php: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original ...
  #1 (permalink)  
Antiguo 28/01/2014, 10:30
 
Fecha de Ingreso: enero-2014
Mensajes: 3
Antigüedad: 10 años, 2 meses
Puntos: 0
sqlsrv_query dentro de funcion php

Buenas,

Tengo problemas para ejecutar código SQL Server dentro de una función PHP, el panorama es el siguiente:


conex.php:
Código PHP:
Ver original
  1. <?php
  2. $serverName = "mi.servidor.com";
  3. $connectionInfo = array( "Database"=>"BaseDeDatos", "UID"=>"MiUsuario", "PWD"=>"MiPass");
  4. $conn = sqlsrv_connect( $serverName, $connectionInfo);
  5. ?>

funciones.php:
Código PHP:
Ver original
  1. <?php
  2. function test() {
  3.     $fecha = sqlsrv_fetch_array(sqlsrv_query($conn,"SELECT * FROM BaseDedatos.tabla"));
  4.     print_r($fecha);
  5. }
  6. ?>

test.php:
Código PHP:
Ver original
  1. <?php
  2. include('conex.php');
  3. include('funciones.php');
  4. test();
  5. ?>


Donde estaría el error? inclusive probando lo siguiente no me funciona:

prueba.php:
Código PHP:
Ver original
  1. <?php
  2. $serverName = "mi.servidor.com";
  3. $connectionInfo = array( "Database"=>"BaseDeDatos", "UID"=>"MiUsuario", "PWD"=>"MiPass");
  4. $conn = sqlsrv_connect( $serverName, $connectionInfo);
  5.  
  6. function test() {
  7.     $fecha = sqlsrv_fetch_array(sqlsrv_query($conn,"SELECT * FROM BaseDedatos.tabla"));
  8.     print_r($fecha);
  9. }
  10.  
  11. test();
  12.  
  13. ?>


Solo funciona si el código esta fuera del function(). Espero puedan ayudarme.


Saludos y gracias.-

Última edición por 0x90; 28/01/2014 a las 12:43
  #2 (permalink)  
Antiguo 28/01/2014, 17:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: sqlsrv_query dentro de funcion php

El primer error es que la variable $conn no está disponible dentro de la función test() porque son ámbitos (o contextos) diferentes; para "importar" $conn y poder usarla dentro de una función necesitas algo como:

Código PHP:
Ver original
  1. $con = 'valor';   // Variable definida en ámbito global
  2.  
  3. function test() {
  4.       // En este ámbito no está disponible $conn
  5.  
  6.       global $conn;   // <-------------- Ahora sí ya puedes usarla dentro de la función
  7. }

Otro error es que quieres ejecutar y leer una consulta en una misma línea, lo cual te ocasionará errores si no hay resultados para mostrar, entonces:

1- Ejecutar la consulta sqlsrv_query($conn, /* aquí la consulta */)
2- Averiguar si se encontraron resultados sqlsrv_num_rows()
3- Si hay resultados, entonces sí leerlos con sqlsrv_fetch_***()
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: fecha, funcion, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:01.