Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] conexion php a sqlserver 2008 mala en soap

Estas en el tema de conexion php a sqlserver 2008 mala en soap en el foro de PHP en Foros del Web. Que tal gente, voy días con este problema, puesto que mi conexión a la base de datos de sql server 2008 no funciona en el ...
  #1 (permalink)  
Antiguo 24/11/2014, 19:00
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
conexion php a sqlserver 2008 mala en soap

Que tal gente,

voy días con este problema, puesto que mi conexión a la base de datos de sql server 2008 no funciona en el web service, es muy extraño por que el sistema si esta funcionando pero cuando intento ejecutar un soap simplemente no arroja registros, realicé pruebas con MySql y funciona a la perfección. aqui le dejo mi còdigo de conexión que si funciona cuanod corro el sistema:

Código PHP:
Ver original
  1. if(!extension_loaded("soap")){
  2.       dl("php_soap.dll");
  3. }
  4.  
  5. ini_set("soap.wsdl_cache_enabled","0");
  6. $server = new SoapServer("aritmetica.wsdl");
  7.  
  8. function sumar($operando1,$operando2){
  9.       return $operando1+$operando2;
  10. }
  11.  
  12. function restar($operando1,$operando2){
  13.       return $operando1-$operando2;
  14. }
  15.  
  16. function pagos($fecha){
  17.  
  18.     $db_host = 'pc';
  19.  
  20.     $db_user = 'sa';
  21.     $db_pwd = '12345678';
  22.  
  23.     $database = 'BDr'; //Base de Datos
  24.  
  25.     $connectionInfo = array("UID" => $db_user, "PWD" => $db_pwd, "Database"=>$database);
  26.     $conn = sqlsrv_connect( $db_host, $connectionInfo);
  27.     if( !$conn )
  28.     {
  29.         echo "Connection could not be established.\n";
  30.         die( print_r( sqlsrv_errors(), true));
  31.     }
  32.     $sql = "select * from tabla";
  33.     $result = sqlsrv_query( $conn, $sql, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
  34.  
  35.     $datos = array();
  36.     $c=0;
  37.     $row = sqlsrv_fetch_array($result);
  38.     while($row = sqlsrv_fetch_array($result)){
  39.         for($i = 0; $i<6;$i++){
  40.             $datos[$c][$i]=$row[$i];
  41.         }
  42.         $c++;
  43.     }
  44.   return $datos;    
  45. }
  46. //pagos();
  47. $server->AddFunction("pagos");
  48. $server->handle();
tambien he intentado incluir el archivo de conexión pero sin resultados, algùna idea de solución por favor. Gracias
  #2 (permalink)  
Antiguo 25/11/2014, 07:58
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: conexion php a sqlserver 2008 mala en soap

Continuo con el problema, he probado con otro tipo de conexión y funciona bien, pero al usar el soap no funciona, he probado con otra base de datos y funciona el problema está con sqlserver2008, esta es mi otra coexión
Código PHP:
Ver original
  1. function pagos($fecha){
  2.     include("adodb/adodb.inc.php");      
  3.     $conexion = &ADONewConnection(odbc_mssql);  
  4.      
  5.     $datos = "Driver={SQL Server};Server=PC;Database=DBr;";  
  6.      
  7.     $conexion->Connect($datos,'sa','12345678');  
  8.      
  9.     $resultado = &$conexion->Execute("select * from pagosLv");  
  10.      
  11.     if(!$resultado)  
  12.         print $conexion->ErrorMsg( );  
  13.     else {  
  14.         while(!$resultado->EOF) {  
  15.      
  16.             print $resultado->fields[0]." <br>";  
  17.             print $resultado->fields[1]." <br>";  
  18.             print $resultado->fields[2]." <br>";  
  19.      
  20.             $resultado->MoveNext( );  
  21.         }  
  22.     }
Por favor alguna idea de que está pasando
  #3 (permalink)  
Antiguo 25/11/2014, 08:10
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: conexion php a sqlserver 2008 mala en soap

Extrañamanete con la 2da conexión arriba expuestas si funciona lo raro es por que no me funciona con la primera conexión, en lo personal estos problemas hacen que deteste a windows.

en el anterior ejemplo tenía un problema, pero ahora lo tengo de esta otra manera por si a alguien le pasa lo mismo.
Código PHP:
Ver original
  1. if(!extension_loaded("soap")){
  2.       dl("php_soap.dll");
  3. }
  4.  
  5. ini_set("soap.wsdl_cache_enabled","0");
  6. $server = new SoapServer("aritmetica.wsdl");
  7.  
  8. function sumar($operando1,$operando2){
  9.       return $operando1+$operando2;
  10. }
  11.  
  12. function restar($operando1,$operando2){
  13.       return $operando1-$operando2;
  14. }
  15.  
  16. function pagos($fecha){
  17.     include("adodb/adodb.inc.php");
  18.     $conexion = &ADONewConnection(odbc_mssql);  
  19.     $datos = "Driver={SQL Server};Server=PC;Database=DBr;";  
  20.     $conexion->Connect($datos,'sa','12345678');  
  21.     $resultado = &$conexion->Execute("select * from pagosLv");  
  22.     if(!$resultado)  
  23.         print $conexion->ErrorMsg( );  
  24.     else {  
  25.         $datos = array();
  26.         while(!$resultado->EOF) {  
  27.             $datos[] = array(0=>$resultado->fields[0],1=>$resultado->fields[1],2=>$resultado->fields[2]);  
  28.             $resultado->MoveNext( );  
  29.         }  
  30.         return $datos;
  31.     }  
  32. }
  33. $server->AddFunction("pagos");
  34. $server->handle();
Saludos.

Etiquetas: conexion, fecha, mysql, registro, select, soap, 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 06:56.