Foros del Web » Programando para Internet » PHP »

No muestra procedimientos almacenados en php

Estas en el tema de No muestra procedimientos almacenados en php en el foro de PHP en Foros del Web. este es mi codigo php: Cita: include ('Cx.php'); $link=Conectarse(); $parametro1=12; $sql= "CALL NombreUsuario(".$parametro1.");"; $Result= mysqli_query($link, $sql); while($row_grid = mysql_fetch_array($Result)) { echo "holaaa"; } Y este ...
  #1 (permalink)  
Antiguo 01/09/2009, 13:32
 
Fecha de Ingreso: mayo-2002
Mensajes: 486
Antigüedad: 21 años, 11 meses
Puntos: 0
No muestra procedimientos almacenados en php

este es mi codigo php:

Cita:
include ('Cx.php');
$link=Conectarse();


$parametro1=12;
$sql= "CALL NombreUsuario(".$parametro1.");";
$Result= mysqli_query($link, $sql);
while($row_grid = mysql_fetch_array($Result)) {
echo "holaaa";
}
Y este es mi procedure en mysql visto desde phpMyAdmin:
Cita:
CREATE DEFINER=`sk`@`%` PROCEDURE `NombreUsuario`(IdPersona Int)
BEGIN
SELECT * FROM Persona;
END$$
Me sale el siguiente error:

Cita:

Warning: mysqli_query() expects parameter 1 to be mysqli, resource given in /var/www/html/sk/erp/DemoControles6.php on line 10

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/html/sk/erp/DemoControles6.php on line 11
Gracias por sus aportes
__________________
Sistemass.com - Centro de capacitación profesional
http://www.sistemass.com
  #2 (permalink)  
Antiguo 01/09/2009, 15:18
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: No muestra procedimientos almacenados en php

Cita:
Warning: mysqli_query() expects parameter 1 to be mysqli, resource given in /var/www/html/sk/erp/DemoControles6.php on line 10
El primer parametro enviado a mysqli_query debe ser un recurso (link a conexion con base de datos) creada con mysqli_connect().

Como estas creando la conexion?

Cita:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/html/sk/erp/DemoControles6.php on line 11
Si desde la conexion no se creo un recurso valido para acceso a base de datos, el resultado de la consulta tampoco sera un recurso valido.

Por otra parte, no estoy muy seguro de que se pueda combinar el uso de funciones mysql y mysqli, pero, tan solo por consistencia / congruencia / facilidad de lectura en los scripts no es recomendable.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 01/09/2009, 17:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: No muestra procedimientos almacenados en php

Aparte, no puedes combinar las librerías, tienes que usar mysqli, o mysql, no puedes pasar un resource de MySQLi a la otra librería y esperar que funcione.

Saludos.
  #4 (permalink)  
Antiguo 01/09/2009, 20:13
 
Fecha de Ingreso: mayo-2002
Mensajes: 486
Antigüedad: 21 años, 11 meses
Puntos: 0
Respuesta: No muestra procedimientos almacenados en php

Este es mi archivo de conexion

Cita:
function Conectarse()
{
$servidor ="localhost"; // default 'localhost'
$usuario_db ="root";
$password_db ="";
$db ="erp_v2";

if (!($link=mysql_connect($servidor,$usuario_db,$pass word_db)))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db($db,$link))
{
echo "Chocherita, hay un error seleccionando la base de datos.";
exit();
}

return $link;
}
__________________
Sistemass.com - Centro de capacitación profesional
http://www.sistemass.com
  #5 (permalink)  
Antiguo 01/09/2009, 20:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: No muestra procedimientos almacenados en php

Como te comento no puedes mezclar librerias, o usas MySQLi, o usas MySQL, tienes que decidir por una y usarla (que debería ser MySQLi ya que la librería de MySQL no soporta procedimientos almacenados).

Saludos.
  #6 (permalink)  
Antiguo 01/09/2009, 21:56
 
Fecha de Ingreso: mayo-2002
Mensajes: 486
Antigüedad: 21 años, 11 meses
Puntos: 0
Respuesta: No muestra procedimientos almacenados en php

Con estos comentarios ya lo solucione. No tenia claro el tema de la conexion y de la necesidad e usar otra libreria.

Aqui mi archivo de conexion para los que necesiten:

Cita:
function Conectarse()
{
$servidor ="localhost";
$usuario_db ="root";
$password_db ="";
$db ="erp_v2";


$link = new MySQLi($servidor,$usuario_db,$password_db,$db);
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

printf("Host information: %s\n", $link->host_info);
return $link;
}
Gracias
__________________
Sistemass.com - Centro de capacitación profesional
http://www.sistemass.com
  #7 (permalink)  
Antiguo 01/09/2009, 22:04
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: No muestra procedimientos almacenados en php

Ui q raro, osea que mysql no soporta procedimientos almacenados ? O_O, entonces yo porque cree 1 procedimiento en mysql y funciono ? o hablan de q la libreria de mysql para usarla en php es la que no funciona ? o como es la cosa

Gracias
  #8 (permalink)  
Antiguo 02/09/2009, 01:08
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: No muestra procedimientos almacenados en php

acoevil, el problema era que estaba usando funciones mysql mezcladas con mysqli (tal vez no has visto la i).
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 02/09/2009, 08:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: No muestra procedimientos almacenados en php

Si lees bien mi mensaje puedes ver que hablo de la libreria de PHP, no del motor de MySQL son cosas muy diferentes, y sí, la libreria de PHP MySQL NO soporta procedimientos almacenados, los que sí lo soportan son las librerias MySQLi y PDO_Mysql.

Saludos.
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 11:13.