Foros del Web » Programando para Internet » PHP »

insertar datos con store procedure mysql desde php

Estas en el tema de insertar datos con store procedure mysql desde php en el foro de PHP en Foros del Web. Hola a todos! No se si es aqui que debo poner mi problema. Les explico. Quiero insertar datos llamando a un strore procedure mysql desde ...
  #1 (permalink)  
Antiguo 07/01/2011, 12:46
 
Fecha de Ingreso: junio-2008
Ubicación: Rosario siempre estuvo cerca
Mensajes: 14
Antigüedad: 14 años
Puntos: 2
Pregunta insertar datos con store procedure mysql desde php

Hola a todos! No se si es aqui que debo poner mi problema. Les explico. Quiero insertar datos llamando a un strore procedure mysql desde php. Lo que yo hice no funciona, sin embargo, cuando pongo la sentencia en el Aqua Data Studio, el store procedure inserta los datos en la tabla.

La conexion es asi:

Código PHP:
<?php
$servidor
="localhost";
$user="root";
$pass="";
$basedatos="torta1";
$link=mysql_connect($servidor,$user,$pass);
mysql_select_db($basedatos,$link) or die ('Cannot select database');
?>
El store procedure es:

Código PHP:
$sistema4="create procedure `sp_insert_adm` (in usuario nvarchar(15), in contrasenia nvarchar(15))
          begin
          insert into administrador (admin, password) values (usuario,contrasenia);
          select cargadoAdm();
          end;"
;
$res4=mysql_query($sistema4,$link); 
El store se carga normalmente en el motor y el codigo anterior es solo parte del archivo. La llamada en el mismo archivo la hago asi:

Código PHP:
$sistema7="call sp_insert_adm ('admin','admin');";
$res7=mysql_query($sistema7,$link); 
Vuelvo a aclarar: si pongo
Código PHP:
 call sp_insert_adm ('admin','admin'); 
en Aqua Data Studio, el dato se inserta en la tabla.

No se que puedo estar haciendo mal. Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 07/01/2011, 16:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 16 años, 1 mes
Puntos: 2135
Respuesta: insertar datos con store procedure mysql desde php

Para poder usar Stored Procedures con MySQL debes de usar la extensión MySQLi o PDO.

Saludos.
  #3 (permalink)  
Antiguo 07/01/2011, 18:40
 
Fecha de Ingreso: junio-2008
Ubicación: Rosario siempre estuvo cerca
Mensajes: 14
Antigüedad: 14 años
Puntos: 2
Respuesta: insertar datos con store procedure mysql desde php

Hice click en lo 2 links y me fije la instalacion. Estoy usando Windows y XAMPP que tiene php 5.3.1, por lo cual, MYSQLi viene habilitada y utiliza por omisión el Driver Nativo MySQL. Esto significa que no debe preocuparse por configurar el acceso a libmysql.dll. Sin embargo, cuando intente usarlo (y cabe mencionar que no conozco ni poco del tema) me tiraba errores a lo perro. En cuanto a PDO, para usuarios de windows se lleva a cabo en 2 pasos, que, por el mismo motivo de usar php 5.3.1, el primero no es necesario. El segundo te indica que linea tocar en php.ini. y lo que yo entendi fue que debia tocar (o sacarle el ; ) a la linea

extension=php_pdo_mysql.dll

la cual no existe en mi php.ini.

Ademas hay que sumar a todo esto que no tengo ni idea de que es PDO. En sintesis: no se usar mysqli ni PDO. Pense que podia tener un error tonto como para que la respuesta no sea "Leete todo el manual de php". Igualmente gracias.
  #4 (permalink)  
Antiguo 07/01/2011, 18:50
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 12 años, 2 meses
Puntos: 461
Respuesta: insertar datos con store procedure mysql desde php

pues es extraño yo trabajo en windows con PDO y esta habilitado para mysql por defecto de echo no tube que tocar nada, pero si ubiera tenido que tocar, sencillamente con darle a ctrl+f o crtl+b y colocar pdo seguro que lo encontraras, muchos recomiendan este, incluso cuando te adentres mas y quieras hacer una clase para no tener que estar escribiendo las sentencias SQL cada rato te servira aca un pequeño articulo introductorio a el trabajo con PDO que cuando lo comence a usar me ayudo a entenderlo, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 07/01/2011, 20:26
 
Fecha de Ingreso: junio-2008
Ubicación: Rosario siempre estuvo cerca
Mensajes: 14
Antigüedad: 14 años
Puntos: 2
Respuesta: insertar datos con store procedure mysql desde php

Como MYSQLi viene habilitada para php 5.3.0 +, y como soy un cabeza dura, busque unos codigos para probar y adaptarlo a lo que yo quiero y al final, con mysqli no pasa naranja. El codigo es el siguiente:

Código PHP:
<?php
$con 
mysqli_connect("localhost""root""""torta");

/* verificar la conexion */
if (mysqli_connect_errno()) {
echo 
"Hay error de conexion: "mysqli_connect_error();
exit();
}

$sistema1="create table administrador(
          admin varchar(25),
          password varchar(25))"
;
$a1=mysqli_query($con,$sistema1);
$sistema2="create procedure `sp_insert_adm` (in usuario varchar(25), in contrasenia varchar(25))
          begin
          insert into administrador (admin, password) values (usuario,contrasenia);
          end;"
;
$a2=mysqli_query($con,$sistema2); 

$admin="admin";
echo 
$admin;
$sistema3="CALL sp_insert_adm ('$admin');";
$a3=mysqli_query($con,$sistema3); 
?>
Con MYSQLi, el dato admin no lo inserta en la bd. Aqui hay otra cosa que esta pasando. Agradezco tu comentario de PDO, lo voy a tener en cuenta. Pasa que ahora tengo que usar procedimientos almacenados, funciones, transacciones y triggers con mysql y usar todo esto con php. Gracias igual.
  #6 (permalink)  
Antiguo 14/01/2011, 17:37
 
Fecha de Ingreso: junio-2008
Ubicación: Rosario siempre estuvo cerca
Mensajes: 14
Antigüedad: 14 años
Puntos: 2
Respuesta: insertar datos con store procedure mysql desde php

Al final era un problema de configuracion del XAMPP. Probe a ver si funcionaba con Mowes y anduvo. Y funciona con mysql y msqli (todo el codigo que escribi estaba bien), GatorV

Etiquetas: ejecucion, insertar, llamada, mysql, procedure, store, stored-procedure
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 09:48.