Foros del Web » Programando para Internet » PHP »

parametros de salida desde PHP

Estas en el tema de parametros de salida desde PHP en el foro de PHP en Foros del Web. Buen dìa compañeros del foro. tengo un problema que pensè que no me hiba a dar tanto palo. Creè el siguiento procedimiento almacenadoen mysql. @import ...
  #1 (permalink)  
Antiguo 08/02/2018, 06:13
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 10 años, 10 meses
Puntos: 2
parametros de salida desde PHP

Buen dìa compañeros del foro.
tengo un problema que pensè que no me hiba a dar tanto palo.

Creè el siguiento procedimiento almacenadoen mysql.
Código MySQL:
Ver original
  1. create procedure verID_producto(IN nom varchar(50), OUT salida int)
  2. select id_producto from producto where nombre_producto=nom into salida;
  3. END//

Hago el llamado del procedimiento en el mismo MYSQL y todo bien pero al momento de llamarlo desde php no me da.

Ni asì
Código PHP:
Ver original
  1. mysqli_query($conexion,"call verID_presentacion($cad_presentacion,'@ver')")
  2.     or die("Problemas en el select".mysqli_error($conexion));
  3.    
  4.     $rta=mysqli_query($conexion,"select @ver")
  5.     or die("Problemas en el select".mysqli_error($conexion));

Ni tampoco asì.

Código PHP:
Ver original
  1. $conexion=mysqli_connect('localhost','root','91052060929','rio') or
  2.     die('Problemas con la conexión');
  3.    
  4.     if ($mysqli->connect_errno) {
  5.     echo "Falló la conexión a MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
  6. }
  7.  
  8.     if (!$mysqli->query("CALL verID_producto($cad_producto,@ver)")) {
  9.     echo "Falló CALL: (" . $mysqli->errno . ") " . $mysqli->error;
  10. }
  11. if (!($rta = $mysqli->query("SELECT @msg as _p_out"))) {
  12.     echo "Falló la obtención: (" . $mysqli->errno . ") " . $mysqli->error;
  13. }
  14. $fila = $rta->fetch_assoc();
  15.     return $fila;

Y no veo donde està el problema. Llevo poco en PHP.
Gracias a todo aquel que aporte su respuesta.

Última edición por dacroma; 08/02/2018 a las 06:23
  #2 (permalink)  
Antiguo 08/02/2018, 16:37
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, 7 meses
Puntos: 2237
Respuesta: parametros de salida desde PHP

Para los que no somos muy versados en MySQL y procedimientos almacenados nos sería muy útil que comentes el mensaje de error que obtienes.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 08/02/2018, 17:01
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 10 años, 10 meses
Puntos: 2
Respuesta: parametros de salida desde PHP

Si señor.
el error es el siguiente:
problemas en el select, you have an error in your SQL sintax: chech de manual that corresponds to your MYSQL server version for de rigth syntax to use near at '@ver)' at line 1
Ese error corresponde al uso de esta manera:

Código PHP:
Ver original
  1. function obtID_presentacion($conexion,$cad_presentacion){
  2.     mysqli_query($conexion,"call verID_presentacion($cad_presentacion,@ver)"); 
  3.     $rta=mysqli_query($conexion,"select @ver");
  4.     return $rta;
  5. }

y este es el procedimiento en la bd

Código MySQL:
Ver original
  1. delimiter //
  2. create procedure verID_producto( IN nom varchar(50), OUT salida int)
  3. select id_producto from producto where nombre=nom into salida;
  4. end//

Última edición por dacroma; 08/02/2018 a las 17:07
  #4 (permalink)  
Antiguo 08/02/2018, 18:41
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, 7 meses
Puntos: 2237
Respuesta: parametros de salida desde PHP

Antes de usar @ver debes asignar un valor, revisa el segundo ejemplo del manual, seguramente ahí te aclararás las cosas: http://php.net/manual/es/mysqli.quic...procedures.php
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 08/02/2018, 19:14
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 10 años, 10 meses
Puntos: 2
Respuesta: parametros de salida desde PHP

me has guiado de sobremanera, pero aun me da el siguiente error

object of class mysqli could by no converted to string in (ruta de archivo) on line 50.

Este es el codigo php.
Código PHP:
Ver original
  1. $mysqli = new mysqli('localhost','root','91052060929','rio');
  2. if (!$mysqli->query("SET @msg = ''") || !$mysqli->query("CALL verID_producto($cad_producto,@msg)")) {
  3.     echo "Falló CALL: (" . $mysqli->errno . ") " . $mysqli->error;
  4. }
  5. if (!($resultado = $mysqli->query("SELECT @msg as _p_out"))) {
  6.     echo "Falló la obtención: (" . $mysqli->errno . ") " . $mysqli->error;
  7. }
  8. $fila = $resultado->fetch_assoc();
  9. echo $fila['_p_out'];
  #6 (permalink)  
Antiguo 08/02/2018, 23:03
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, 7 meses
Puntos: 2237
Respuesta: parametros de salida desde PHP

Y cuál es la línea 50?
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 09/02/2018, 07:36
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 10 años, 10 meses
Puntos: 2
Respuesta: parametros de salida desde PHP

Esta es la linea 50.
Código PHP:
Ver original
  1. if (!$mysqli->query("SET @msg = ''") || !$mysqli->query("CALL verID_producto($cad_producto,@msg)")) {

Y este es el error:
Catchable fatal error: Object of class mysqli could not by converted to string ( ruta de archivo) on line 50

Etiquetas: mysql, nombre, parametros, salida, select, sql
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 07:32.