Foros del Web » Programando para Internet » PHP »

llamar procedures de sql server en php y odbc ..

Estas en el tema de llamar procedures de sql server en php y odbc .. en el foro de PHP en Foros del Web. hola amigos la cuestion es que tengo dos bases de datos estan en sql server y tengo que utilizar el controlador universal odbc ... b1 ...
  #1 (permalink)  
Antiguo 07/03/2012, 10:57
Avatar de a_gomez  
Fecha de Ingreso: marzo-2012
Ubicación: /var/www/
Mensajes: 48
Antigüedad: 12 años, 8 meses
Puntos: 2
Pregunta llamar procedures de sql server en php y odbc ..

hola amigos la cuestion es que tengo dos bases de datos estan en sql server y tengo que utilizar el controlador universal odbc ...

b1 = a
b2 = b

desde la base de datos (a) tengo el control de los usuarios que van a ejecutar los procedures que estan programados en la base de datos (b).

en mi codigo php hago la conexion a las bases de datos (a) y (b) y funcionan pero no tengo ni idea de como llamar procedures con odbcy ejecutarlos por en la base de datos (b),entro a lo procedures y hay unos como

EXECUTE (reingresarrecibo {recibo})

asi se ejecutan pero desde sql ...

haora desde php necesito que la pueda insertar {recibo} para que se ejecute por ejemplo ..

EXECUTE (reingresarrecibo {7785}

que en mi codigo esta almacenado en una variable $recibo

si pudieran ayudarme con un ejemplo claro se los agradeceria ..
  #2 (permalink)  
Antiguo 07/03/2012, 13:19
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 2 meses
Puntos: 45
Respuesta: llamar procedures de sql server en php y odbc ..

Hola,
si no estoy mal deberia ser asi
Código PHP:
Ver original
  1. //$conn=id_recurso conexion
  2. $stmt    = odbc_prepare($conn, 'CALL reingresarrecibo(?,?,?)');
  3. $éxito = odbc_execute($stmt, array($a, $b, $c));
Esto sacado del manual
dejo estos links para que los lea
odbc-prepare
odbc-execute
odbc-procedures
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #3 (permalink)  
Antiguo 07/03/2012, 13:25
Avatar de a_gomez  
Fecha de Ingreso: marzo-2012
Ubicación: /var/www/
Mensajes: 48
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: llamar procedures de sql server en php y odbc ..

Cita:
Iniciado por malakian Ver Mensaje
Hola,
si no estoy mal deberia ser asi
Código PHP:
Ver original
  1. //$conn=id_recurso conexion
  2. $stmt    = odbc_prepare($conn, 'CALL reingresarrecibo(?,?,?)');
  3. $éxito = odbc_execute($stmt, array($a, $b, $c));
Esto sacado del manual
dejo estos links para que los lea
[URL="http://php.net/manual/es/function.odbc-prepare.php"]odbc-prepare[/URL]
[URL="http://www.php.net/manual/es/function.odbc-execute.php"]odbc-execute[/URL]
[URL="http://www.php.net/manual/es/function.odbc-procedures.php"]odbc-procedures[/URL]
podrias explicarme que significan (?,?,?) .....
  #4 (permalink)  
Antiguo 07/03/2012, 13:35
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 2 meses
Puntos: 45
Respuesta: llamar procedures de sql server en php y odbc ..

Son los valores del procedure en su caso, sino supongo mal es el valor del "recibo" o del numero de parametros que tenga...
Código PHP:
Ver original
  1. $stmt    = odbc_prepare($conn, 'CALL reingresarrecibo(123)');
  2. $éxito = odbc_execute($stmt, array());
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #5 (permalink)  
Antiguo 07/03/2012, 13:42
Avatar de a_gomez  
Fecha de Ingreso: marzo-2012
Ubicación: /var/www/
Mensajes: 48
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: llamar procedures de sql server en php y odbc ..

jajajajajajajaja gracias el perro !!!!!

pd:soy megoz ...
  #6 (permalink)  
Antiguo 07/03/2012, 13:47
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 2 meses
Puntos: 45
Respuesta: llamar procedures de sql server en php y odbc ..

__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #7 (permalink)  
Antiguo 07/03/2012, 13:48
Avatar de a_gomez  
Fecha de Ingreso: marzo-2012
Ubicación: /var/www/
Mensajes: 48
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: llamar procedures de sql server en php y odbc ..

mk mire el codigo ...

<?php

include("../conexion/conexion_workflow.php");

if(isset($_POST["numrecibo"])){
$recibo=$_POST["numrecibo"];
}
$stmt= odbc_prepare($conexion, 'CALL REINGRESARRECIBOSIREP(.'$recibo'.)');
$éxito = odbc_execute($stmt, array());

?>
  #8 (permalink)  
Antiguo 07/03/2012, 13:49
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 2 meses
Puntos: 45
Respuesta: llamar procedures de sql server en php y odbc ..

Esta mal concatenado
Código PHP:
Ver original
  1. $stmt= odbc_prepare($conexion, 'CALL REINGRESARRECIBOSIREP('.$recibo.')');
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #9 (permalink)  
Antiguo 07/03/2012, 13:53
Avatar de a_gomez  
Fecha de Ingreso: marzo-2012
Ubicación: /var/www/
Mensajes: 48
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: llamar procedures de sql server en php y odbc ..

Warning: odbc_execute() [function.odbc-execute]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Sintaxis incorrecta cerca de '123456'., SQL state 37000 in SQLExecute in C:\inetpub\wwwroot\registros\class\operaciones\act ion_reingresarrecibo.php on line 9

me sale este error ....
  #10 (permalink)  
Antiguo 07/03/2012, 14:17
Avatar de a_gomez  
Fecha de Ingreso: marzo-2012
Ubicación: /var/www/
Mensajes: 48
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: llamar procedures de sql server en php y odbc ..

mk ya le di karma ayudeme jajajajajajajajajajajajajajajaja ....
  #11 (permalink)  
Antiguo 07/03/2012, 14:52
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 2 meses
Puntos: 45
Respuesta: llamar procedures de sql server en php y odbc ..

Ahora como tiene el codigo?? postee
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #12 (permalink)  
Antiguo 07/03/2012, 15:12
Avatar de a_gomez  
Fecha de Ingreso: marzo-2012
Ubicación: /var/www/
Mensajes: 48
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: llamar procedures de sql server en php y odbc ..

<?php

include("../conexion/conexion_workflow.php");

if(isset($_POST["numrecibo"])){
$recibo=$_POST["numrecibo"];
}
$stmt= odbc_prepare($conexionw, 'CALL REINGRESARRECIBOSIREP('.$recibo.')');
$exito = odbc_execute($stmt, array());

if (!$exito) {
exit("<strong>ERROR EN EL PROCESO DE EJECUCION </strong>");
}else{
header("location:../../sitio/administrador/reingresarrecibo.php?msj=true");

}

?>
  #13 (permalink)  
Antiguo 07/03/2012, 15:20
Avatar de a_gomez  
Fecha de Ingreso: marzo-2012
Ubicación: /var/www/
Mensajes: 48
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: llamar procedures de sql server en php y odbc ..

Warning: odbc_execute() [function.odbc-execute]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Sintaxis incorrecta cerca de '21631'., SQL state 37000 in SQLExecute in C:\inetpub\wwwroot\registros\class\operaciones\act ion_reingresarrecibo.php on line 9
ERROR EN EL PROCESO DE EJECUCION
  #14 (permalink)  
Antiguo 07/03/2012, 15:25
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 2 meses
Puntos: 45
Respuesta: llamar procedures de sql server en php y odbc ..

Código PHP:
Ver original
  1. $exito = odbc_execute($stmt, array($recibo));
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #15 (permalink)  
Antiguo 07/03/2012, 15:32
Avatar de a_gomez  
Fecha de Ingreso: marzo-2012
Ubicación: /var/www/
Mensajes: 48
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: llamar procedures de sql server en php y odbc ..

nada ....

Warning: odbc_execute() [function.odbc-execute]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Sintaxis incorrecta cerca de '21631'., SQL state 37000 in SQLExecute in C:\inetpub\wwwroot\registros\class\operaciones\act ion_reingresarrecibo.php on line 9
ERROR EN EL PROCESO DE EJECUCION
  #16 (permalink)  
Antiguo 07/03/2012, 15:33
Avatar de a_gomez  
Fecha de Ingreso: marzo-2012
Ubicación: /var/www/
Mensajes: 48
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: llamar procedures de sql server en php y odbc ..

Código PHP:
Ver original
  1. <?php
  2.    
  3.     include("../conexion/conexion_workflow.php");
  4.  
  5.     if(isset($_POST["numrecibo"])){
  6.         $recibo=$_POST["numrecibo"];
  7.     }
  8.     $stmt= odbc_prepare($conexionw, 'CALL REINGRESARRECIBOSIREP('.$recibo.')');
  9.     $exito = odbc_execute($stmt, array($recibo));
  10.    
  11.     if (!$exito) {
  12.             exit("<strong>ERROR EN EL PROCESO DE EJECUCION </strong>");
  13.         }else{
  14.             header("location:../../sitio/administrador/reingresarrecibo.php?msj=true");
  15.        
  16.         }
  17.        
  18. ?>
  #17 (permalink)  
Antiguo 07/03/2012, 15:40
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 2 meses
Puntos: 45
Respuesta: llamar procedures de sql server en php y odbc ..

WTF???? estoy confundido! pero aparte de eso que mas ha intentado a?????

Código PHP:
Ver original
  1. $query='CALL REINGRESARRECIBOSIREP(?)';
  2. $res = odbc_prepare($db_conn, $query);
  3. if(!$res) die("could not prepare statement ");
  4.  
  5. if(odbc_execute($res, array($recibo))) {
  6.     $row = odbc_fetch_array($res);
  7. }
si no funciona pruebe a cambiar $query por 'EXECUTE (reingresarrecibo {?})'

se me agotan las ideas...
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #18 (permalink)  
Antiguo 07/03/2012, 15:44
Avatar de a_gomez  
Fecha de Ingreso: marzo-2012
Ubicación: /var/www/
Mensajes: 48
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: llamar procedures de sql server en php y odbc ..

Código PHP:
Ver original
  1. <?php
  2.    
  3.     include("../conexion/conexion_workflow.php");
  4.  
  5.     if(isset($_POST["numrecibo"])){
  6.         $recibo=$_POST["numrecibo"];
  7.     }
  8.    
  9.     $query='CALL REINGRESARRECIBOSsIREP('.$recibo.')';
  10.     $res = odbc_prepare($conexionw, $query);
  11.     if(!$res) die("could not prepare statement ");
  12.  
  13.     if(odbc_execute($res, array($recibo))) {
  14.     $row = odbc_fetch_array($res);
  15. }
  16.    
  17. ?>
Warning: odbc_execute() [function.odbc-execute]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Sintaxis incorrecta cerca de '21631'., SQL state 37000 in SQLExecute in C:\inetpub\wwwroot\registros\class\operaciones\act ion_reingresarrecibo.php on line 13
  #19 (permalink)  
Antiguo 07/03/2012, 15:49
Avatar de a_gomez  
Fecha de Ingreso: marzo-2012
Ubicación: /var/www/
Mensajes: 48
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: llamar procedures de sql server en php y odbc ..

Código PHP:
Ver original
  1. <?php
  2.    
  3.     include("../conexion/conexion_workflow.php");
  4.  
  5.     if(isset($_POST["numrecibo"])){
  6.         $recibo=$_POST["numrecibo"];
  7.     }
  8.    
  9.     $query='EXECUTE (reingresarrecibo {'.$recibo.'})';
  10.     $res = odbc_prepare($conexionw, $query);
  11.     if(!$res) die("could not prepare statement ");
  12.  
  13.     if(odbc_execute($res, array($recibo))) {
  14.     $row = odbc_fetch_array($res);
  15. }
  16.    
  17. ?>


Warning: odbc_prepare() [function.odbc-prepare]: SQL error: [Microsoft][ODBC SQL Server Driver]Syntax error or access violation, SQL state 37000 in SQLPrepare in C:\inetpub\wwwroot\registros\class\operaciones\act ion_reingresarrecibo.php on line 10
could not prepare statement
  #20 (permalink)  
Antiguo 07/03/2012, 15:50
Avatar de a_gomez  
Fecha de Ingreso: marzo-2012
Ubicación: /var/www/
Mensajes: 48
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: llamar procedures de sql server en php y odbc ..

ni por delante ni por detras ..............
  #21 (permalink)  
Antiguo 07/03/2012, 16:05
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 2 meses
Puntos: 45
Respuesta: llamar procedures de sql server en php y odbc ..

pero ud no lo coloco tal cual lo escribi, con el '?'
Código PHP:
Ver original
  1. $query='CALL REINGRESARRECIBOSIREP(?)';
  2.     $res = odbc_prepare($db_conn, $query);
  3.     if(!$res) die("could not prepare statement ");
  4.      
  5.     if(odbc_execute($res, array($recibo))) {
  6.         $row = odbc_fetch_array($res);
  7.     }
imprima $query, para ver como se genera
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #22 (permalink)  
Antiguo 08/03/2012, 08:00
Avatar de a_gomez  
Fecha de Ingreso: marzo-2012
Ubicación: /var/www/
Mensajes: 48
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: llamar procedures de sql server en php y odbc ..

Código PHP:
Ver original
  1. include("../conexion/conexion_workflow.php");
  2.  
  3.     if(isset($_POST["numrecibo"])){
  4.         $recibo=$_POST["numrecibo"];
  5.     }
  6.    
  7.     $query='CALL REINGRESARRECIBOSSIREP(?)';
  8.     $res = odbc_prepare($conexionw, $query);
  9.     if(!$res) die("could not prepare statement ");
  10.      
  11.     if(odbc_execute($res, array($recibo))) {
  12.         $row = odbc_fetch_array($res);
  13.     }


Warning: odbc_execute() [function.odbc-execute]: SQL error: [Microsoft][ODBC SQL Server Driver]Invalid parameter number, SQL state S1093 in SQLDescribeParameter in C:\inetpub\wwwroot\registros\class\operaciones\act ion_reingresarrecibo.php on line 13
  #23 (permalink)  
Antiguo 08/03/2012, 11:20
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 2 meses
Puntos: 45
Respuesta: llamar procedures de sql server en php y odbc ..

que tipo de datos deberia ser ese recibo en la base de datos??
las sentencias se estan ejecutando, solo que se le esta enviando un tipo de dato incorrecto
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #24 (permalink)  
Antiguo 08/03/2012, 14:31
Avatar de a_gomez  
Fecha de Ingreso: marzo-2012
Ubicación: /var/www/
Mensajes: 48
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: llamar procedures de sql server en php y odbc ..

Código PHP:
Ver original
  1. <?php
  2.    
  3.     include("../conexion/conexion_workflow.php");
  4.  
  5.     if(isset($_POST["numrecibo"])){
  6.         $recibo=$_POST["numrecibo"];
  7.     }
  8.    
  9.     $query='CALL REINGRESARRECIBOSSIREP('.$recibo.')';
  10.     $res = odbc_prepare($conexionw, $query);
  11.     $rs=odbc_execute($res);
  12.    
  13.    
  14.    if (!$rs) {
  15.         exit("<strong>ERROR EN EL PROCESO DE EJECUCION </strong>");
  16.     }else{
  17.     $msj= odbc_result_all($rs);
  18.     header("location:../../sitio/administrador/reingresarrecibo.php?msj=true");
  19.  
  20.     }
  21.    
  22. ?>


PHP Warning: odbc_execute() [function.odbc-execute]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Sintaxis incorrecta cerca de '123456'., SQL state 37000 in SQLExecute in C:\inetpub\wwwroot\registros\class\operaciones\act ion_reingresarrecibo.php on line 11

Etiquetas: odbc, procedures, sql-server
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:45.