PDF de programación - Capitulo 5: Manejo de Bases de Datos (MySQL) - Curso de PHP

Imágen de pdf Capitulo 5: Manejo de Bases de Datos (MySQL) - Curso de PHP

Capitulo 5: Manejo de Bases de Datos (MySQL) - Curso de PHPgráfica de visualizaciones

Publicado el 15 de Julio del 2018
768 visualizaciones desde el 15 de Julio del 2018
80,5 KB
10 paginas
Creado hace 23a (09/02/2001)
Capitulo 5: Manejo de Bases de Datos (MySQL)

Una de las características más importantes de PHP es su integración con diversos motores de base de datos,.
El PHP está construido para generar en forma sencilla páginas web dinámicas a partir de información
almacenada en bases de datos. A continuación mostramos las funciones más importantes y ejemplos típicos
de uso para una base MySql.

1. Conexión a la base

$db_link=mysql_connect(hostname, user, password);

Ejemplo:

$db=mysql_connect(“localhost”,”root”,”secreto”);

La función realiza la conexión a la base Mysql y devuelve “false” si hubo algún error en la conexión o un link
a la conexión a la base en caso de que la conexión sea exitosa.

El link es un número que indica la sesión dentro del MySql. Esta sesión se mantiene hasta que [...]. Para
finalizar la conexión se debe utilizar la función mysql_close(). Es muy importante cerrar la conexión a la base
de datos una vez finalizadas las transacciones para evitar la sobrecarga en el motor de la base de datos.

2. Selección de la base de datos a utilizar

mysql_select_db(database_name, db_link);

Ejemplo:

mysql_select_db(“test”,$db);

Esta función configura cual es la base de datos que se utilizara por omisión. En este caso el link a utilizar en
esta función es el link que se obtuvo al ejecutar la función mysql_connect.

La función mysql_select_db devuelve el valor “false” en caso de que se encuentre algún error, como por
ejemplo la inexistencia de la base de datos.

En este punto cabe aclarar que la denominación de las bases de datos de MySql es case-sensitive, por lo que
debemos mantener un standard a la hora de elegir los nombres de las distintas bases de datos.

3. Queries a la base de datos.

$result=mysql_query(query,db_link);

Ejemplo:

$result=mysql_query(“update clientes set deudor=’si’ where apellido=’Picapiedras’, $db)

$query=”insert into clientes (nombre, Apellido) values (Pedro, Mármol) ”;
$result=mysql_query($query,$db);

Nuevamente el link que se debe usar es el que se obtiene al conectarse a la base, mysql_query devuelve falso
en caso de que el query no pueda ejecutarse (error de SQL) o bien un result set en los casos que devuelva
algún tipo de datos como por ejemplo en un select..

Es muy importante fijarse con que usuario se realizó la conexión a la base de datos a la hora de ejecutar el
mysql_connect, ya que la gran mayoría de los errores producidos en esta instancia son el resultado de la falta
de permisos para realizar la consulta.

4. Cantidad de Filas Consultadas o Modificadas

4.1 Filas Consultadas

$cantidad=mysql_num_rows($result);

Ejemplo:
$query=”select nombre, telefono from contactos where edad between 20 and 25 and sexo=’f’”;
$result=mysql_query($query,$db);
$cant=mysql_num_rows($result);

Esta función devuelve la cantidad de filas que se obtuvieron luego de ejecutar una instrucción de consulta
como por ejemplo la función select.
En el caso del ejemplo, en la variable $cant nos dirá cuantas chicas de entre 20 y 25 años tenemos en nuestra
lista de contactos.

4.2 Filas Modificadas

$cantidad=mysql_affected_rows(db_link);

Ejemplo:

$cuantos=mysql_affected_rows($db);

Devuelve cuantos registros fueron afectados por un query con insert, update, o delete, notar que se le pasa el
db_link ya que el result_set no tiene sentido. Si el query fue un delete sin clausula “where” esta función
devuelve cero independientemente del número de registros eliminados de la tabla.

5. Obtención de registros de una consulta

5.1 Obtención de datos en un result set

$var=mysql_fetch_row(result_set);

Ejemplo:
$query=”select nombre, telefono from contactos where edad between 20 and 25 and sexo=’f’”;
$result=mysql_query($query,$db);$rs=mysql_fetch_row($result);

Toma un registro del result set y lo devuelve en un vector en el cual el elemento con índice 0 es la primer
columna del registro, el elemento con índice 1 es la segunda columna, etc. Si no hay más registros por
devolver devuelve false.
Los valores de los campos solicitados en el result set son devueltos en forma de array, es decir que para
acceder al valor de nombre de la primera fila de nuestro ejemplo debo llamar a la variable $rs[0].Ejemplo:

while($v=mysql_fetch_row($result)) {
print(“Columna 0: $v[0] Columna 1: $v[1]”);
}

5.2 Obtención de datos en un vector

$query=”select nombre, telefono from contactos where edad between 20 and 25 and sexo=’f’”;
$result=mysql_query($query,$db);
$rs=mysql_fetch_array($result);

Ejemplo:

$rs=mysql_fetch_array($result);

Funciona de forma idéntica a mysql_fetch_row pero devuelve los resultados en un vector asociativo indexado
por nombre de columna, por lo que para obtener los nombres de nuestra consulta es necesario llamar al vector
de la forma $rs[“nombre”]

Ejemplo:

while($v=mysql_fetch_array($result)) {
print(“Columna 0: $v[“nombre”]”);
}

6. Cerrar la conexión

mysql_close(db_link)

Por último, esta función nos sirve para cerrar la conexión a la base se usa.

Otras funciones:

result=mysql_create_db(database_name,db_link);

Función

Result=mysql_data_seek(result_set, position);

Result=mysql_db_query(database_name, query,
db_link);

Result=mysql_drop_db(database_name,db_link);

Object=mysql_fetch_field(result_set,
numero_columna);

Descripción

Crea una base de datos con el nombre indicado,
devuelve true o false según el resultado.
Mueve el puntero interno de cada result set a la
posición indicada (el primer registro es la posición 0),
de esta forma la próxima llamada a mysql_fetch_row
o mysql_fetch_array devolvera el registro que se
acaba de apuntar. Devuelve true o false.
Realiza una consulta a una base indicada, es
obviamente reemplazable por un mysql_select_db y
un mysql_query aunque resulta útil si hay que
consultar tablas en varias bases distintas.

Dropea la base con el nombre indicado, devuelve true
o false.
Devuelve un objeto con información sobre la columna
indicada de un result set (0 es la primera columna, 1
la segunda, etc). Las propiedades que se setean en el
objeto son:

name – nombre de la columna
table – nombre de la tabla



• max_length – longitud maxima de la




columna
not_null – 1 si la columna no puede ser null
primary_key - 1 si la columna es primary
key

unique_key - 1 si la columna es unique key
• multiple_key - 1 si la columna no es unique

key
numeric - 1 si la columna es numerica
blob - 1 si la columna es un BLOB
type – Tipo de la columna
unsigned - 1 si la columna es sin signo
zerofill - 1 si la columna es zero-filled







object=mysql_fetch_object(result_set);

int=mysql_num_fields(result_set);

Similar a mysql_fetch_array con la diferencia de que
los resultados se devuelven en un vector en lugar de
un vector asociativo. Luego se puede acceder a las
distintas columnas del registro devuelto como
propiedades (data_members) del objeto devuelto.
Devuelve el numero de columnas en un result set.

Manejo de errores:

Mensaje=mysql_error();

Devuelve un texto con el mensaje correspondiente al error que ocurrió en caso de que se produzca un error en
la base de datos.

Ejemplo:

$result=mysql_query($query,$db);
if(!$result) {
$x=mysql_error();
die(“ Ocurrio un error en la base de datos: $x”);
}

Generación dinámica de páginas a partir de una base de datos:

Repasemos el layout de nuestro web-site ejemplo:

LOGO

BANNER

BOTON S1
Barra de links y
Aplicaciones

BOTON S2

CONTENIDOS

BUSCADOR

BOTON S3

BOTON S4

Informacion de copyrigh, y pie de página

Supongamos que a la barra de links y aplicaciones a la derecha se decide agregarle un módulo “noticia de la
semana” el layout queda entonces de la siguiente manera:

LOGO

BANNER

BOTON S1
Noticia de la semana.

BOTON S2

CONTENIDOS

BOTON S3

BOTON S4

BUSCADOR

Barra de links y aplicaciones.

Información de copyrigh, y pie de página

Se define que el módulo php que mostrará la noticia de la semana se denominará noticia.php

Ejercicio: Modificar el archivo layout1.php para reflejar el cambio.

A continuación una tarea habitual es que el equipo de diseño realice un archivo html (o php) con un ejemplo
de cómo debe quedar para que sea visualmente agradable el módulo noticia de la semana, por ejemplo puede
verse de la siguiente manera:

El código HTML del módulo noticia.php es el siguiente:

<table bgcolor="#22AE22" width="140" border="0" cellspacing="0" cellpadding="0">
<tr><td>
<img src="flechita.gif">
<b>Título Noticia</b>
</td></tr>
<tr><td bgcolor="#226622">
Información sobre la noticia datos varios cosas divertidas.
</td>
</tr>
</table>

Lo que debemos hacer es reemplazar el título de la noticia y el texto de la misma por valores que obtenemos
de la base de datos. Para ello decidimos crear una tabla llamada “noticia” en donde almacenaremos la noticia
de la semana, además tenemos que construir un cargador que permita insertar el título y texto de la noticia en
la base.

Definimos la tabla noticia en MySQL de la siguiente manera:

CREATE TABLE noticia(
título varchar(40),
texto text,
fecha datetime
);

La fecha la vamos a usar para poder insertar varias noticias y que en la página se muestre siempre la última (la
que tiene fecha más reciente), el historial de noticias de la semana puede usarse eventualmente en otra página
para mostrar un listado de los títulos de la noticia de la semana, etc.

El formulario cargador que vamos a utilizar usa las técnicas que vimos en el capítulo de formularios y le
agregamos el manejo de la base de datos para que realice el insert en la tabla de noticias.

<?
//Este código se ejecuta cuando se presiono el botón de submit
if(isset($proc)) {
$dab=mysql_connect(" localhost","root","seldon");
mysql_select_db("curso",$dab);
$query="INSERT into noticia(título,texto,fecha) values('$título','$texto',now()
)";
$res=mysql_query($query,$dab);
if(!$res) {
$x=mysql_error();
print("Se produjo un error al insertar: $x");
}
}
?>
<form action="<?p
  • Links de descarga
http://lwp-l.com/pdf12550

Comentarios de: Capitulo 5: Manejo de Bases de Datos (MySQL) - Curso de PHP (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad