Upload
victor-lira
View
122
Download
1
Embed Size (px)
Citation preview
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
Comparte! Facebook0
Comparte! Twitter0
Comparte! Google+2
Imprimir
Un procedimiento almacenado (Store Procedure), es un pequeño algoritmo en lenguaje SQL
que se almacena junto a la base de datos y permite realizar tareas sobre estos datos.
Las Ventajas de los procedimientos almacenados son:
- Se pueden acceder desde distintos programas externos, si la necesidad de hacer publica la
estructura de la base de datos.
- Se pueden reutilizar por lo tanto ganaremos tiempo al estar ya programado y testeado.
Utilizar procedimientos mysql almacenados, con phpmyadmin
Iniciaremos el trabajo de crear y consultar procedimientos almacenados con la herramienta
phpmyadmin, pero puede utilizarse cualquiera que soporte consultas SQL a partir de MYSQL
5.0
En este caso tomaremos la base de datos de una agencia de autos o vehículos.
1) Ingresamos a phpmyadmin y de allí a la base de datos
Existen 2 tipo motores que manejan datos en Mysql
MyISAM: motor por defecto, muy rápido para consultas, no provee integridad de datos,
ni protección referencial. Ideal sistemas con muchas consultas
InnoDB: provee protección referencial e integridad de datos además de bloqueo de
registros, ideal si se va a insertar, editar o eliminar mucha información constantemente.
Generalmente para procedimientos almacenados es mejor utilizar InnoDB.
En la pestaña SQL creamos nuestro primer procedimiento almacenado para consultar los
tipos de vehículos. Escribiros en el campo de texto de sql.
CREATE PROCEDURE consultar_tipo_vehiculo() ---> nombre del procedimiento
SELECT * FROM tipo_vehiculo ---> SQL que debe resolver
Si ejecutamos la consulta SQL recibiremos un mensaje de éxito al crearse el procedimiento.
Para ver los procedimientos creados desde la pestaña SQL consultamos la orden SHOW
PROCEDURE STATUS, que no mostrara todos los procedimientos almacenados.
Ahora mostraremos como ejecutar el procedimiento almacenado con el comando CALL
nombre_procedimiento(cada lenguaje de programación tiene su propia librería para acceder
a un procedimiento almacenado pero son todos similares.
Aquí podemos ver el resultado de ejecutar el procedimiento almacenado CALL
pa_tipo_vehiculo, devolvió el resultado y nadie ve que comandos se han ejecutado.
En el siguiente ejemplo listaremos vehículos pero por marca, el procedimiento seria:
CREATE PROCEDURE pa_vehiculos_por_marca(marca varchar(50))
SELECT * FROM
vehiculos, marcas
WHERE vehiculos.marca = marcas.id
AND marcas.marca=marca
Al nombre del procedimiento le añadimos una variable para poder buscar ejemplo vehículos
marca Honda
Para ejecutar el ejemplo llamamos al procedimiento almacenado en una pestaña de SQL
CALL pa_vehiculos_por_marca(“Honda”)
CALL pa_vehiculos_por_marca(“Ford”)
También podes utilizar los procedimientos almacenados para tareas de inserción ejemplo un
procedimiento para grabar datos de un cliente
CREATE PROCEDURE pa_cliente_insertar(
vnombre VARCHAR(64),
vapellidos VARCHAR(64)
)
INSERT INTO cliente (nombre, apellidos) VALUES(vnombre, vapellidos);
Para utilizarlo lo llamamos de la siguiente forma
CALL pa_cliente_insertar('José','Gonzales');
Otro podría ser Consultar cantidad de provincias
CREATE PROCEDURE `pa_provincias_cantidad`()
SELECT COUNT(*) as provincias FROM provincias
Para eliminar cualquier procedimiento se utiliza DROP PROCEDURE nombre_procedimiento
Llamadas a procedimientos desde distintos lenguajes.
En PHP, suponiendo que los datos vienen de un formulario
$mysqli = new mysqli("localhost", "root", "root");
$mysqli->select_db("agencia_autos");
$mysqli->query("CALL pa_cliente_insertar('$nombre', '$apellido')");
Ahora ejecutamos el procedimeinto almacenado en Java (se ha recortado el código)
conn = ConexionMySQL.conectar("127,0,0,1", "root", "*******", "root");
CallableStatement Procedimiento = conn.prepareCall("{ CALL
pa_cliente_insertar('$nombre', '$apellido')) }");
Procedimiento.setString("vnombre", $nombre);
Procedimiento.setString("vapellido", $apellido);
Procedimiento.execute();
connM.commit();
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.
Formulario inicial añadir BD
<html><body>
<form method="post" action="add_reg.php3">Nombre :<input type="Text" name="nombre"><br>Dirección:<input type="Text" name="direccion"><br>Teléfono :<input type="Text" name="telefono"><br>E-mail :<input type="Text" name="email"><br>
<input type="Submit" name="enviar" value="Aceptar información"></form>
</body></html>
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¡).
Combinacion de formulario y script
<html><body>
<?php if ($enviar) { // 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"; }else{?> <form method="post" action="add_reg.php3"> Nombre :<input type="Text" name="nombre"><br> Dirección:<input type="Text" name="direccion"><br> Teléfono :<input type="Text" name="telefono"><br> E-mail :<input type="Text" name="email"><br> <input type="Submit" name="enviar" value="Aceptar información"> </form>
<?php } //end if ?>
</body></html>
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:
<form name="holamundo" action="insertar_datos.php" method="post">Título: <input type="text" name="titulo"><br>Contenido: <textarea name="contenido"></textarea><br><input type="enviar" value="Enviar"></form>
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
$link = mysql_connect("localhost","usuario","contraseña");mysql_select_db("nombredb",$link);
// 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.
$titulo = mysql_real_escape_string($_POST['titulo']);
Y luego usamos la variable $titulo en la sentencia.
Redactado por Nenillo
Un gran inconveniente a la hora de insertar datos en una página web, es tener
que volver a cargar la página completa para ver los resultados, algo
que podemos evitar usando Ajax.
Para conseguirlo, Ajax recogerá los datos de nuestro formulario de inserción a la
base de datos y los enviará a otra página PHP que se encarga de realizar la
inserción. En esta entrada veremos cómo insertar datos en MySQL con PHP y
AJAX.
De esta forma, la página web no necesita recargarse para mostrar los datos
insertados, ni siquiera para insertarlos simplemente.
En el ejemplo de demostración usaré una base de datos con la siguiente estructura
de tablas.
CREATE TABLE IF NOT EXISTS `empleados` ( `nombre` VARCHAR(255) NOT NULL, `apellido` VARCHAR(255) NOT NULL,
`web` VARCHAR(255) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin1;
El ejemplo, tratará de mostrar una lista con empleados y sus datos, y un formulario
de alta de empleados. Al final del ejercicio quedará así.
El ejemplo consta de 4
archivos.
empleados_registro.php: Muestra el formulario de inserción y llama a la función
en Ajax.
ajax.js: Realiza la recogida de datos del formulario y lo envía al script en PHP.
registro.php: Recoge los datos de la función en Ajax y llama a la consulta de los
datos.
consulta.php: Realiza una consulta en la base de datos después de insertar los
datos, este script se muestra en empleados_registro.php.
Una vez explicada la estructura y funciones de cada archivo, veremos el código de
cada archivo. El código es bastante sencillo y viene comentado para explicar
todas las funciones.
empleados_registro.php<html> <head> <title>Registro de empleados</title> <script language="JavaScript" type="text/javascript" src="ajax.js"></script> </head> <body>
<form name="nuevo_empleado" action="" onsubmit="enviarDatosEmpleado(); return false">
<h2>Nuevo empleado</h2><table>
<tr> <td>Nombres</td><td><label><input name="nombre" type="text" /></label></td> </tr>
<tr><td>Apellido</td><td><label><input type="text"
name="apellido"></label></td></tr>
<tr> <td>Web</td><td><label><input name="web" type="text" /></label></td>
</tr> <tr> <td> </td><td><label><input type="submit" name="Submit" value="Grabar" /></label></td> </tr> </table>
</form>
<div id="resultado"><?php include('consulta.php');?></div> </body></html>
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";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password); mysql_select_db($bd_base, $con);
//consulta todos los empleados$sql=mysql_query("SELECT * FROM empleados",$con);?><table style="color:#000099;width:400px;">
<tr style="background:#9BB;"><td>Nombre</td><td>Apellido</td><td>Web</td>
</tr><?php while($row = mysql_fetch_array($sql)){ echo "<tr>"; echo "<td>".$row['nombre']."</td>"; echo "<td>".$row['apellido']."</td>"; echo "<td>".$row['web']."</td>"; echo "</tr>"; }?></table>
¿Te ha gustado? Compártelo y Comenta! Puedes darme tu opinión o consultar tus
dudas, de esta forma mantendremos la blogosfera viva.
inShare
« Cómo instalar y configurar un servidor FTP en Windows (Previous Post)
(Next Post) Tips y trucos CSS: Códigos preformateados de estilos para tu web »
« Previous Image
54 COMMENTSTO INSERTAR DATOS EN MYSQL CON PHP USANDO AJAX PARA EVITAR RECARGAR LA PÁGINA
1. M a n u e l dice:25 de junio de 2013 a las 2:13:20
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
Responder
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??
Responder
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.
Responder
10. J o dice:
MÉTODO PARA INSERTAR REGISTROS EN MYSQL USANDO
PHP
09 de marzo de 2014
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 ?
1. C:\xampp\mysql\bin>mysql -h localhost -u root -p 2. Enter password: 3. mysql>show databases 4. >; 5. mysql>use test 6. Database changed 7. mysql>create table demo (nombre varchar(20)); 8. Query OK, 0 rows affected (0.14sec) 9. mysql> show tables; 10. mysql>quit 11. Bye 12. C:\xampp\mysql\bin>exit
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
CREAR UNA TABLA A TRAVÉS DE PHPMYADMIN
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 ?
1. <h3>Comentarios</h3> 2. <form id="form_comentarios" action="../php/comentarios.php" method="post">
3. <input id="id_articulo" name="id_articulo" type="hidden" value="3"/> 4. Nombre<br> 5. <input id="nombre" type="text" name="nombre" placeholder="Nombre y Apellid
o" 6. title="Ingresa tu nombre y Apellido" required="" /> 7. Email<br> 8. <input id="email" type="email" name="email" placeholde
r="[email protected]" 9. title="Ingresa tu email" required="" /> 10. Comentario<br> 11. <textarea id="mensaje" name="mensaje" placeholder="Mensaje" 12. title="Ingresa tu comentario" required=""></textarea> 13. <input id="submit" type="submit" name="submit" value="Enviar" /> 14. </form>
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
DESC LIMIT 1", 23. $link); 24. while($row_a = mysql_fetch_row($verif)){ 25. $ultimo_com = $row_a[7]; 26. } 27. if ($nombre != "" and filter_var($email, FILTER_VALIDATE_EMAIL) 28. and $comentario != $ultimo_com) { 29. mysql_query("INSERT INTO comentarios 30. id_articulo, ip, url, fecha_hora, nombre, email, comentario) 31. VALUES ('$id_articulo', '$ip', '$url', '$fecha_hora', '$nombre', '$emai
l', '$comentario')", 32. $link); 33. } 34. ?>
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.
Google +58 7 5
Anuncios / Ads
COMENTARIOS
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