Procedimientos almacenados en PhpMyAdmin MySql desde la version 5.xx soporta la creación de procedimientos almacenados. Una de las ventajas que aporta el desarrollar aplicaciones con procedimientos es que permite un mejor rendimiento de las aplicaciones. Ya que no son tantos los datos que transitan entre el cliente y el servidor. Probablemente quienes quieran hacer sus pruebas, creando sp (Store Procedures / Procedimientos Almacenados) en phpmyadmin se darán cuenta que no resulta tan sencillo. Por esto este tip: Por ejemplo: Tengo una tabla que se llama usuarios y creare un procedimiento para que me retorne todos los datos de esa tabla. Esto seria de la siguiente manera: al finalizar la sentencia END se agregan estos signos $$, mas abajo en la caja de texto que dice delimitador, se vuelven a ingresar estos signos $$. Tal cual aparece en la imagen que adjunto.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Procedimientos almacenados en PhpMyAdmin
MySql desde la version 5.xx soporta la creación de procedimientos almacenados. Una de las ventajas que aporta el desarrollar aplicaciones con procedimientos es que permite un mejor rendimiento de las aplicaciones. Ya que no son tantos los datos que transitan entre el cliente y el servidor.
Probablemente quienes quieran hacer sus pruebas, creando sp (Store Procedures / Procedimientos Almacenados) en phpmyadmin se darán cuenta que no resulta tan sencillo. Por esto este tip:
Por ejemplo: Tengo una tabla que se llama usuarios y creare un procedimiento para que me retorne todos los datos de esa tabla. Esto seria de la siguiente manera:
al finalizar la sentencia END se agregan estos signos $$, mas abajo en la caja de texto que dice delimitador, se vuelven a ingresar estos signos $$. Tal cual aparece en la imagen que adjunto.
Edición 01/05/2012Tal como lo indica uno de los comentarios anónimos. Para obtener una lista de los procedimientos
creados en una base de datos se usa la siguiente orden:
Para obtener una lista de todos los procedimientos almacenados en tu instalación de MySql, debes seleccionar la base de datos information_schema y hacer la consulta:
También se puede obtener el código de un procedimiento
Por defecto, PhpMyAdmin muestra el código en una linea. Se debe hacer click sobre el linkOpciones y elegir Texto Completo.
Para cerrar el circulo. Lo que normalmente va a pasar es que quieras hacer alguna modificación al procedimiento. Pero en MySql un ALTER PROCEDURE no va a funcionar para cambiar parámetros ni el código (ver link ALTER PROCEDURE Syntax). Lo que se debe hacer es eliminar el procedimiento y volver a crearlo.
Artículos de este blog Relacionados sp_helptext en MySql u obtener CreateOtros Links ALTER PROCEDURE Syntax
Si te ha sido útil o te ha gustado el artículo, ayúdame compartiéndolo con tus amigos. Haz clic en el botón de la red social de tu preferencia. Gracias.
Procedimientos almacenados MYSQL – Creación, Consultas e inserciones de datosTutorial sobre la creación, consultas e inserciones de datos en bases de datos MYSQL. Store Procedure.Escrito por Sergio Culoccioni el jun 06 2013 09:59
mysql insertar datos mysql consultas mysql datos mysql inserciones bbdd
De esta forma se demuestra que se ha usado el mismo procedimientos en entornos y
lenguajes diferentes, de forma transparente para el usuario. El tema procedimiento es extenso
pero cualquiera con conocimientos de SQL podrá investigar y conseguir grandes logros con la
utilización de procedimientos almacenados, pudiendo así optimizar sus proyectos en tiempo y
seguridad de datos.
Añadir registros a nuestra base de datos
En esta lección vamos ver como podemos añadir nuevos registros a nuesta BD. La recogida de datos la vamos a hacer a traves de un interfaz de web. En primer lugar vamos a crear una página web con un simple formulario, con los campos que deseamos.
Hemos creado un formulario donde recoger los datos, y una vez introducidos ejecutamos un script llamado add_reg.php3, pues veamos como es este script.
añadir registros
<html><body>
<?php// process form$link = mysql_connect("localhost", "root");mysql_select_db("mydb",$db);$sql = "INSERT INTO agenda (nombre, direccion, telefono, email) " + "VALUES ('$nombre', '$direccion', '$telefono', '$email')";$result = mysql_query($sql);echo "¡Gracias! Hemos recibido sus datos.\n";
</body></html>
Como se puede ver, para introducir un nuevo registro, utilizamos la ya conocida función mysql_query(), la cúal también usamos para las consultas, y usaremos para las actualizaciones, es decir una señorafunción. ¡Aaah!, una cosa muy importante, para poder añadir o modificar registros debemos tener permiso para ello en el servidor MySQL, por eso en este caso me conecto como root, pero podría ser cualquier otro usuario.
Para terminar esta lección, una pequeña frivolidad, vamos a combinar la página web de formulario y el fichero de script php3, en un solo fichero que llamaremos add_reg.php3 (este script no lo comentaré, !algo tendran que hacer ustedes¡).
Algo muy común en el desarrollo de aplicaciones web es la capacidad de insertar contenidos en un formulario y pasarlos directamente a la base de datos para su posterior uso. Registro de usuarios, inserción de contenidos, noticias, etc.
El atributo del formulario que hagamos tiene que apuntar al script que procesará la información y en este caso el método que usamos es POST (method="post"). Así sería un posible formulario:
Ahora en el archivo "insertar_datos.php" vamos a recoger estos datos e insertarlos en nuestra base de datos. Suponemos que tenemos una tabla en la base de datos, llamada "noticias" que tiene los campos "titulo" y "contenido". Miraremos si realmente se han introducido datos en el formulario y si es así, insertaremos los valores en la base de datos.
<?php
// Primero comprobamos que ningún campo esté vacío y que todos los campos existan.if(isset($_POST['titulo']) && !empty($_POST['titulo']) &&isset($_POST['contenido']) && !empty($_POST['contenido'])) {
// Si entramos es que todo se ha realizado correctamente
// Con esta sentencia SQL insertaremos los datos en la base de datosmysql_query("INSERT INTO noticias (titulo,contenido)VALUES ('{$_POST['titulo']}','{$_POST['contenido']}')",$link);
// Ahora comprobaremos que todo ha ido correctamente$my_error = mysql_error($link);
if(!empty($my_error) {
echo "Ha habido un error al insertar los valores. $my_error";
} else {
echo "Los datos han sido introducidos satisfactoriamente";
}
} else {
echo "Error, no ha introducido todos los datos";
}
?>
Esta es luna forma bastante simple de insertar datos en una base de datos MySQL. Podemos seguir este esquema para procesar formularios más complejos. Una mejora imprescindible en este código es escapar los contenidos que insertemos. Si nuestro servidor no tiene activadas las magic_quotes, para evitar una inyección SQL tendremos que escapar los valores que insertemos en la sentencia SQL. Podemos usar la función mysql_real_escape_string.
ajax.js// JavaScript Document // Función para recoger los datos de PHP según el navegador, se usa siempre.function objetoAjax(){
var xmlhttp=false;try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");} catch (E) {
xmlhttp = false;}
} if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();}return xmlhttp;
} //Función para recoger los datos del formulario y enviarlos por post function enviarDatosEmpleado(){ //div donde se mostrará lo resultados divResultado = document.getElementById('resultado'); //recogemos los valores de los inputs nom=document.nuevo_empleado.nombre.value; ape=document.nuevo_empleado.apellido.value; web=document.nuevo_empleado.web.value; //instanciamos el objetoAjax ajax=objetoAjax(); //uso del medotod POST //archivo que realizará la operacion //registro.php
ajax.open("POST", "registro.php",true); //cuando el objeto XMLHttpRequest cambia de estado, la función se inicia ajax.onreadystatechange=function() {
//la función responseText tiene todos los datos pedidos al servidor if (ajax.readyState==4) { //mostrar resultados en esta capa
divResultado.innerHTML = ajax.responseText //llamar a funcion para limpiar los inputs
LimpiarCampos();}
}ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//enviando los valores a registro.php para que inserte los datosajax.send("nombre="+nom+"&apellido="+ape+"&web="+web)
} //función para limpiar los camposfunction LimpiarCampos(){ document.nuevo_empleado.nombre.value=""; document.nuevo_empleado.apellido.value=""; document.nuevo_empleado.web.value=""; document.nuevo_empleado.nombre.focus();}
registro.php<?php //Configuracion de la conexion a base de datos $bd_host = "localhost"; $bd_usuario = "root"; $bd_password = ""; $bd_base = "ajax"; $con = mysql_connect($bd_host, $bd_usuario, $bd_password); mysql_select_db($bd_base, $con); //variables POST $nom=$_POST['nombre']; $ape=$_POST['apellido']; $web=$_POST['web']; //registra los datos del empleados $sql="INSERT INTO empleados (nombre, apellido, web) VALUES ('$nom', '$ape', '$web')";mysql_query($sql,$con) or die('Error. '.mysql_error()); include('consulta.php');?>
consulta.php<?php //Configuracion de la conexion a base de datos $bd_host = "localhost"; $bd_usuario = "root"; $bd_password = ""; $bd_base = "ajax";
hola junto con saludarte y agradecerte quiero decir que esta muy bien la forma detallada en que explicas el uso de ajax justamente estoy haciendo un sistema web e imperiosamente necesitaba implementarlo muchas gracias.
Responder
2. J u a n M a n u e l dice:28 de junio de 2013 a las 9:38:54
Hola. Estoy intentando crear una sencilla app en html que envíe datos a una base de datos MySQL, a través de un formulario (donde hay 3 campos a rellenar por el usuario). Pero esta app (gracias a Phonegap) permite mostrar las coordenadas del móvil, creado una variable que, lógicamente, depende de la posición. Y me gustaría enviar los datos de los 3 campos (que sí me aparecen en MySQL) y de las coordenadas (aquí está el problema: no se graban en la base de datos). ¿Podrías decirme donde está el problema?
Puedes ver el código aquí: https://www.box.com/s/ifywsmxafp6c153x1kngY aquí el archivo “conecta.php”:https://www.box.com/s/j5cqt7rskj7hrv1hshdiMil gracias!
Responder
o J o r g e C a p e r o t e dice:1 de julio de 2013 a las 22:39:45
Buenas Juan Manuel,
Deberías incluir el valor de las coordenadas que estas recogiendo en el formulario que indicas, mediante inputs hidden, para que el usuario no tenga que verlo en el formulario, de esa forma podrás pasar los datos a la página de destino para insertarlo en la base de datos.
Espero que te sirva de ayuda, saludos.
Responder
3. G E R A R D O dice:5 de julio de 2013 a las 21:39:24
HOLA:Solo para agradecer el detalle de la explicación junto con el código comentado me sirvió de mucho. Gracias
4. J a u n C a r l o s dice:10 de julio de 2013 a las 20:05:31
Amigo es seguro esl envia de datos con ajax o hay la posivilidad que manipulen el envio y hacerlo desde la url y no con el button enviar
Responder
o A l d a i r dice:25 de junio de 2014 a las 4:08:06
Hola Juan carlos el riesgo existe ! por medio del metodo post& get solo es cuestion de que no alla ningun mal intensionado haga eso en tu sitio y pues cada vez que vallas adquiriendo conocimiento vallas mejorando el script de tus consultas en tu base de datosJorge CaperoteMuy bueno tu tuto me gusta mucho !
Responder
5. J o r g e C a p e r o t e dice:10 de julio de 2013 a las 21:39:46
Hola Juan Carlos,
Es seguro puesto que envía los datos por POST. Éste método es utilizado por muchas aplicaciones.
Saludos y gracias por visitar mi blog!
Responder
6. R o b e r t o dice:24 de julio de 2013 a las 18:01:25
Andaba buscando una idea como esta porque necesito guardar datos en la base pero solo de una seccion de mi pagina , ahora bien tengo una duda … tengo un sistema en php y este guarda datos en la base y tengo un formulario general y un boton para guardar , se me ha pedido modificar la pagina y darle la oportunidad al usuario de poder modificar las areas de texto que previamente han sido guardadas ….. tu ejemplo lo trabajas con un form pero en mi caso no podria usarlo ya que tengo un form general y no puedo meter un form dentro de otro form….hay alguna otra manera de enviar datos a una pagina sin usar un form??
o J o r g e C a p e r o t e dice:24 de julio de 2013 a las 22:05:57
Hola Roberto,
Para lo que necesitas tal vez te venga bien hacer un único formulario con varios submit, esto es, crear un submit al final del formulario que lleve al action predeterminado y otro boton (button) en el cual luego llamas con javascript a otro action y manejas los datos que quieras.
Para que te quede más claro te dejo un enlace en el cual lo explica bastante bien:http://stackoverflow.com/questions/942772/html-form-with-two-submit-buttons-and-two-target-attributesEspero que te sirva de ayuda y gracias por visitar el blog!
Responder
7. M a r i o G o n z a l e s dice:31 de julio de 2013 a las 23:16:30
Hola, me parece interesante tu tutorial, pero estamos ya en el 2013, parece que viera un código de la década del 90, usa PDO para insertar a la base de datos, por seguridad sobre todo, usa patrones de diseño (MVC, Factory, facade), usa un framewrok javascript como jquery para pasar datos al servidor, usa addcslashes.
Saludos.
Responder
o J o r g e C a p e r o t e dice:1 de agosto de 2013 a las 9:29:11
Hola Mario, me parece bien tu crítica pero creo que no encaja con el contenido del artículo, está claro que hay métodos de conexión a base de datos como PDO (que puedes ver en mi siguiente artículo:http://soyautodidacta.com/2013/04/conexion-a-base-de-datos-en-php-con-pdo/) que supongo que no habrás visto en mi blog, aparte de necesitar una versión superior a 5.1 de PHP, y puede que te sorprenda pero no todo el mundo dispone de ella aún.Podría usar un modelo-vista-controlador como Symfony2 (en el que estoy empezando a desarrollar un hilo de artículos con manualeshttp://soyautodidacta.com/2013/05/frameworks-php-symfony-empezando/) o CodeIgniter (que estoy escribiendo artículos ya, por lo que aún no están subidos).Se que existen métodos para utilizar jQuery, de hecho yo los utilizo, pero la alta demanda de éste tipo de artículos me ha llevado a hacerlo así precisamente.
Supongo que he resuelto todas tus inquietudes y dudas, y por último, no creo que vieras muchas webs con funcionalidades de Ajax en la época de los 90.
Un saludo y gracias por visitar mi Blog!
Responder
8. S o y A u t o d i d a c t a » I n s e r t a r d a t o s c o n j Q u e r y y P H P e n M y S Q L dice:
1 de agosto de 2013 a las 13:49:15
[…] a ver otro método más para insertar datos en una base de datos MySQL, hace
unos meses vímos como insertar datos en MySQL con Ajax y PHP. Todo esto viene
por la necesidad de introducir datos en nuestra base de datos sin tener que […]
Responder
9. G i l b e r t h dice:1 de agosto de 2013 a las 19:21:50
Hola muy buena tu explicación. Tengo una pregunta un poco diferente de lo explicado aqui y es que yo tengo una pagina con un select que dependiendo lo que seleccionan se llenan unos input text con el contenido de la base de datos. Todos los input se crean con ajax y se muestran en la pagina perfectamente el problema es que si el usuario modifica el contenido tengo que guardar en la base de datos las modificaciones pero como son inputs hechos en ajax nose como obtener el value de ellos y para ponder guardarlo. Gracias.
Responder
o J o r g e C a p e r o t e dice:2 de agosto de 2013 a las 8:51:12
Hola Gilberth,
Gracias por visitar mi Blog. Cuando creas inputs por ajax, estás creando un código HTML que será pasado su value a otra página al hacer submit, si yo modifico los campos de los inputs creados, al pasarlo por POST a otra página php tiene que recoger los values que estén en los inputs en el momento de hacer submit, si quieres insertar datos desde la misma página puedes usar éste método para insertarlo o hacerlo con jQueryhttp://soyautodidacta.com/2013/08/insertar-datos-jquery-php-en-mysql/Los values tomarán el valor cuando se hace submit al formSaludos.
Para trabajar con bases de datos a través de un sitio web debemos conocer algunas cosas básicas como por ejemplo como crear una tabla, como insertar registros y también como visualizar estos datos.
Generalmente para la creación de sitios web dinámicos se utiliza Apache, PHP y MySQL la combinación de estas tres soluciones de uso libre crean el estándar sobre el que se realizan muchos proyectos pensados para operar a través de internet.
CREAR UNA TABLA USANDO LA LÍNEA DE COMANDOS DE WINDOWS
Es muy normal que utilicemos MySQL a través de las paginas php y para administrar nuestras bases de datos ocupemos un programa como phpMyAdmin, pero en alguna ocasión podríamos no tener estas opciones por esto es necesario tener alguna noción de como hacerlo a través de la linea de comandos. Como la mayoría debe saber la línea de comandos se abre ejecutando el archivo cmd.exe. Ahora para acceder al servidor debemos conocer en que dirección o carpeta se encuentra ubicado. En mi caso está en C:\xampp\mysql\bin>.view plain print ?
En este ejemplo utilizando la base de datos "test" se creó la tabla "demo" que contiene en campo "nombre". Para más información leer el manual de referencia MySQL
Usar phpMyAdmin es más simple, la administración de las bases de datos se genera a través de una interfaz de usuario que es fácil de entender y de accionar.
Para crear una tabla seleccionamos la base de datos; agregamos el nombre, número de columnas y presionamos continuar. Luego configuramos el tipo de datos de cada columna como el nombre, tipo y longitud.
INSERTAR DATOS HACIA MYSQL USANDO CÓDIGO PHP
Teniendo creada la base de datos y su tabla necesitamos un formulario con los datos que deseemos capturar. Obviamente los campos del formulario deben ser concordantes con los campos de la tabla. Es importante notar que el formulario incluye un input de tipo hidden que es muy útil para relacionar los comentarios con el artículo o noticia que se comenta.view plain print ?
El archivo encargado de insertar los datos del formulario en la base de datos está definido en el atributo action, llamado "comentarios.php" y su código es el siguiente:view plain print ?
1. <?php 2. function Conectarse() 3. { if (!($link=mysql_connect("n_host","n_usuario","password"))) 4. { echo "Error conectando a la base de datos."; 5. exit(); } 6. if (!mysql_select_db("nombre_based",$link)) 7. { echo "Error seleccionando la base de datos."; 8. exit(); } 9. return $link; 10. } 11. $id_articulo = $_POST["id_articulo"]; 12. $ip = $_SERVER['REMOTE_ADDR']; 13. $url = $_SERVER['HTTP_REFERER']; 14. // ajusta la hora 15. $time = time() + 7200; 16. $fecha_hora = date('d-m-Y H:i:s', $time); 17. $nombre = $_POST["nombre"]; 18. $email = $_POST["email"]; 19. $comentario = substr($_POST["mensaje"], 0, 500); 20. $link = Conectarse(); 21. //devuelve el ultimo comentario, muy necesario para evitar doble envio
de los datos 22. $verif = mysql_query("SELECT * FROM comentarios ORDER BY id_comentario
Este es un método para el envío de datos, existen otra formas pero creo que esta es la más usual y simple. Para mayor información pueden acceder al manual de PHP. Espero les guste e interese el tema, se agradecen los comentarios o dudas, aprender y compartir lo que uno sabe es el objetivo de este sitio.
oscar ledesma diceHola estoy en mi etapa de aprendizaje con html5 y php y necesito hacer un formulario para insertar datos y que me muestre un resultado ingresando la id de la persona, agradezco toda su ayuda.
Publicado el 18-03-2014 03:54:38
Juan Boris diceHola oscar, bueno para insertar datos ya vimos un caso en este tutorial, ahora bien para visualizar la info se puede hacer de varias formas: en un formulario con la opción de hacer un UPDATE del cliente, en un archivo pdf o en una tabla que la despliega el mismo archivo php. En el caso de hacerlo por tabla que es lo mas usual puedes usar un input donde ingresas el id que buscas, este id lo recibes en un variable POST que la usas en una mysql_query como SELECT * FROM mitabla WHERE id = $id con mysql_fetch_row y while lo puedes desplegar en tu navegador como tu quieras. Aquí te de dejo un link que te pudiese interesar: http://eisenbraun.github.io/columns/ saludos ..
Publicado el 18-03-2014 17:32:38
- See more at: http://www.ideaschile.cl/insertar-registros-mysql.php#sthash.tams6Mxz.dpuf