Tutorial de PHP y MySQL
Tutorial de PHP y MySQL
1. Instalación de Apache+PHP+MySQL
* Instalación en Windows
* Instalación en Linux/Unix
2. Sintaxis en PHP
* Mi primer script
* Variables y Operadores
* Seriables y Operadores
* Sentencias de Control
* Las Tablas
* Las Funciones
* Include() y require()
* Tiempo y fecha
* Las Clases en PHP
3. Formularios
* Los Formularios
* Descarga de archivos desde un formulario
4. Ficheros
* Funciones de acceso a ficheros
Mi primer script
Una vez que ya tenemos instalados PHP y MySQL, y el servidor
Apache configurado para usarlos, podemos comenzar a escribir
nuestro primer script en PHP.
Variables y operadores
Ahora antes de seguir, vamos a ver un poco de teoría, la sintaxis en
PHP.
Variables:
Como vimos antes todas la variables deben precedidas por signo
dólar ($), y le asignamos contenido con el signo igual (=). Con las
variables, PHP distingue entre mayúsculas y minúsculas, por lo que
bles, PHP distingue entre mayúsculas y minúsculas, por lo que no
es lo mismo $myvar que $Myvar, éstas son dos variables totalmente
distintas.
<html>
<body>
<?php
$myvar = "SEVILLA \n";
$Myvar = "MADRID \n";
//Esto imprimirá SEVILLA
echo $myvar;
//Esto imprimirá MADRID
ECHO $Myvar;
?>
</body>
</html>
Constantes:
Las constantes son similares a las variables, con la salvedad de que
no llevan el signo dólar delante, y sólo la podemos asignar una vez.
Para definir una constantes usaremos la función define como sigue:
<html>
<body>
<?php
define ("CONSTANTE", "Hola Mundo");
printf (CONSTANTE);
?>
</body>
</html>
Operadores Aritméticos:
$a + $b Suma
$a - $b Resta
$a * $b Multiplicación
$a / $b &ss=codigoenlinea>$a / $b División
$a % $b Resto de la división de $a por $b
$a++ Incrementa en 1 a $a
$a-- Resta 1 a $a
Operadores de Cadenas:
El único operador de cadenas que existen es el de concatenación,
el punto. Pero no os asustéis, PHP dispone de toda una batería de
funciones que os permitirán trabajar cómodamente con las cadenas.
$a = "Hola";
$b = $a . "Mundo"; // Ahora $b contiene "Hola Mundo"
En este punto hay que hacer una distinción, la interpretación que
hace PHP de las simples y dobles comillas. En el segundo caso
PHP interpretará el contenido de la cadena.
$a = "Mundo";
echo = 'Hola $a'; //Esto escribirá "Hola $a"
echo = "Hola $a"; //Esto escribirá "Hola Mundo&q; //Esto
escribirá "Hola Mundo"
Operadores de Comparación:
$a < $b $a menor que $b
$a > $b $a mayor que $b
$a <= $b $a menor o igual que $b
$a >= $b $a mayor o igual que $b
$a == $b $a igual que $b
$a != $b $a distinto que $b
Operadores Lógicos:
$a AND $b Verdadero si ambos son verdadero
$a && $b Verdadero si ambos son verdadero
$a OR $b Verdadero si alguno de los dos es verdadero
$a !! $b Verdadero si alguno de los dos es verdadero
$a XOR $b Verdadero si sólo uno de los dos es verdadero
!$a Verdadero si $a es falso, y recíprocamente
Operadores de Asignación:
$a = $b Asigna a $a el contenido de $b
$a += $b Le suma a $b a $a
$a -= $b Le resta a $b a $a
$a *= $b Multiplica $a por $b y lo asigna a $a
$a /= $b Divide $a por $b y lo asigna a $a
$a .= $b Añade la cadena $b a la cadena $a
Variables y operadores
Ahora antes de seguir, vamos a ver un poco de teoría, la sintaxis en
PHP.
Variables:
Como vimos antes todas la variables deben precedidas por signo
dólar ($), y le asignamos contenido con el signo igual (=). Con las
variables, PHP distingue entre mayúsculas y minúsculas, por lo que
bles, PHP distingue entre mayúsculas y minúsculas, por lo que no
es lo mismo $myvar que $Myvar, éstas son dos variables totalmente
distintas.
<html>
<body>
<?php
$myvar = "SEVILLA \n";
$Myvar = "MADRID \n";
//Esto imprimirá SEVILLA
echo $myvar;
//Esto imprimirá MADRID
ECHO $Myvar;
?>
</body>
</html>
Constantes:
Las constantes son similares a las variables, con la salvedad de que
no llevan el signo dólar delante, y sólo la podemos asignar una vez.
Para definir una constantes usaremos la función define como sigue:
<html>
<body>
<?php
define ("CONSTANTE", "Hola Mundo");
printf (CONSTANTE);
?>
</body>
</html>
PHP crea diversas constantes al arrancar, como PHP_VERSION
que contiene la versión de PHP, TRUE que le asigna 1 o FALSE
que le asigna 0.
Operadores Aritméticos:
$a + $b Suma
$a - $b Resta
$a * $b Multiplicación
$a / $b &ss=codigoenlinea>$a / $b División
$a % $b Resto de la división de $a por $b
$a++ Incrementa en 1 a $a
$a-- Resta 1 a $a
Operadores de Cadenas:
El único operador de cadenas que existen es el de concatenación,
el punto. Pero no os asustéis, PHP dispone de toda una batería de
funciones que os permitirán trabajar cómodamente con las cadenas.
$a = "Hola";
$b = $a . "Mundo"; // Ahora $b contiene "Hola Mundo"
Operadores de Comparación:
$a < $b $a menor que $b
$a > $b $a mayor que $b
$a <= $b $a menor o igual que $b
$a >= $b $a mayor o igual que $b
$a == $b $a igual que $b
$a != $b $a distinto que $b
Operadores Lógicos:
$a AND $b Verdadero si ambos son verdadero
$a && $b Verdadero si ambos son verdadero
$a OR $b Verdadero si alguno de los dos es verdadero
$a !! $b Verdadero si alguno de los dos es verdadero
$a XOR $b Verdadero si sólo uno de los dos es verdadero !$a
Verdadero si $a es falso, y recíprocamente
Operadores de Asignación:
$a = $b Asigna a $a el contenido de $b
$a += $b Le suma a $b a $a
$a -= $b Le resta a $b a $a
$a *= $b Multiplica $a por $b y lo asigna a $a
$a /= $b Divide $a por $b y lo asigna a $a
$a .= $b Añade la cadena $b a la cadena $a
Sentencias de control
Las sentencias de control permiten ejecutar bloque de códigos
dependiendo de unas condiciones. Para PHP el 0 es equivalente a
Falso y cualquier otro número es Verdadero.
IF...ELSE
La sentencia IF...ELSE permite ejecutar un bloque de instrucciones
si la condición es Verdadera y otro bloque de instrucciones si ésta
es Falsa. Es importante tener en cuenta q instrucciones si ésta es
Falsa. Es importante tener en cuenta que la condición que
evaluemos ha de estar encerrada entre paréntesis (esto es
aplicable a todas la sentencias de control).
if (condición) {
Este bloque se ejecuta si la condición es VERDADERA
} else {
Este boque se ejecuta si la condición es FALSA
}
IF...ELSEIF...ELSE
La sentencia IF...ELSEIF...ELSE permite ejecuta varias condiciones
en cascada. Para este caso veremos un ejemplo, en el que
utilizaremos los operadores lógicos.
<?php
if ($nombre == ""){
echo "Tú no tienes nombre";
} elseif (($nombre=="eva") OR ($nombre=="Eva")) {
echo "
echo "Tu nombre es EVA";<
} else {
echo "Tu nombre es " . $nombre;
}
SWITCH...CASE...DEFAULT
Una alternativa a IF...ELSEIF...ELSE, es la sentencia SWITCH, la
cuál evalúa y compara cada expresión de la sentencia CASE con la
expresión que evaluamos, si llegamos al final de la lista de CASE y
encuentra una condición Verdadera , ejecuta el código de bloque
que haya en DEFAULT. Si encontramos una condición verdadera
debemos ejecutar un BREAK para que la sentencia SWITCH no
siga buscando en la lista de CASE. Veamos un ejemplo.
<?php
switch ($dia) {
case "Lunes":
echo "Hoy es Lunes";
break;
c
case "Martes":
echo "Hoy es Martes";
break;
case "Miercoles":
echo "Hoy es Miercoles";
break;
case "Jueves":
echo "Hoy es Jueves";
break;
case "Viernes":
echo "Hoy es Viernes";
break;
case "Sábado":
echo "Hoy es Sábado";
break;
case "Domingo":
echo "Hoy es Domingo";
break;
default:
default:
echo "Esa cadena no corresponde a ningún día de la semana";
}
?>
WHILE
La sentencia WHILE ejecuta un bloque de código mientras se
cumpla una determinada condición.
<?php
$num = 1;
while ($num < 5) {
echo $num;
$num++
}
?>
Podemos romper un bucle WHILE utilizando la sentencia BREAK.
<?php
$num = 1;
while ($num < 5) {
echo $num;
if ($num == 3){
echo "Aquí nos salimos \n";
break
}
$num++
}
?>
DO...WHILE
Esta sentencia es similar a WHILE, salvo que con esta sentencia
primero ejecutamos el bloque de código y después se evalúa la
condición, por lo que el bloque de código se ejecuta siempre al
menos una vez.
<?php
$num = 1;
do {
echo $num;
if ($num == 3){
echo "Aquí nos salimos \n";
break
}
$num++
} while ($num < 5);
?>
FOR
El bucle FOR no es estrictamente necesario, cualquier bucle FOR
puede ser sustituido fácilmente por otro WHILE. Sin embargo, el
bucle FOR resulta muy útil cuando debemos ejecutar un bloque de
código a condición de que una variable se encuentre entre un valor
mínimo y otro máximo. El bucle FOR también se puede romper
mediante la sentencia BREAK.
<?php
for ($num = 1; Snum <=5; $num++){
echo $num;
if ($num == 3){
echo "Aquí nos salimos \n";
break
}
}
?>
Las tablas
Las tablas (o array en inglés), son muy importantes en PHP, ya que
generalmente, las funciones que devuelven varios valores, como las
funciones ligadas a las bases de datos, lo hacen en forma de tabla.
Tablas multidimensionales
Las tablas multidimensionales son simplemente tablas en las cuales
cada elemento es a su vez otra tabla.
<?php
$calendario[] = array (1, "enero", 31);
$calendario[] = array (2, "febrero", 28);
$calendario[] = arra
$calendario[] = array (3, "marzo", 31);
$calendario[] = array (4, "abril", 30);
$calendario[] = array (5, "mayo", 31);
while (list($clave, $valor ) = each($calendario)){
{
$cadena = $varlor[1];
$cadena .= " es el mes número " . $valor[0];
$cadena .= "y tiene " . $varlor[2] . " días<BR>";
echo $cadena;
}
?>
Las funciones
Muchas veces, cuando trabajamos en el desarrolo de una
aplicación, nos surge la necesidad de ejectar un mismo bloque de
código en diferentes partes de nuestra aplicación. Una Función no
es más que un bloque de código al que le pasamos una serie de
parámetros y nos devuelve un valor. Como todos los lenguaje de
programación, PHP trae una gran cantidad de funciones para
nuestro uso, pero las funciones más gran cantidad de funciones
para nuestro uso, pero las funciones más importantes son las que
nosotros creamos.
En PHP, por defecto, las variables se pasan por valor. Para hacerlo
por referencia debemos anteponer un ampersand (&) a la variable.
<?php
function suma ($x, $y)
{
$x = $x + 1;
return $x+$y;
}
$a = 1;
$b = 2;
//parámetros por valor
echo suma ($a, $b); // imprimirá 4
echo $a; // imprimirá 1
//parámetros por referencia
echo suma (&$a, $b); // imprimirá 4
echo $a; //imprimirá 2
?>
Funciones Variable
PHP soporta el concepto de funciones variables, esto es significa
que si una variable tiene unos parentesis añadidos al final, PHP
buscará un función con el mismo nombre que el contenido de la
variable, e intentará ejecutarla.
<?php
function imprime($texto) {
echo $texto . "\n";
}
function imprimeNegrilla($texto){
echo "<B>$texto</B>\n";
}
$MiFunc = "imprime";
$MiFunc("Hola"); //imprimirá Hola
$MiFunc = "imprimeNegrilla";
$MiFunc("Hola"); //imprimirá Hola
?>
Recursión
PHP t>Recursión
PHP también permite la recursión, es decir, una función se puede
llamar así misma. Para aclarar el concepto de recursión, vamos a
crear una función que comprueba si un número es entero o no.
Un número que no sea entero (7'4), tiene una parte entera y otra
decimal (comprendida entre 0 y 1), lo que vamos a hacer para
comprobar si un número es entero o no, será restarle 1 al número
en cuestión hasta que nos que demos sin parte entera, y entoces
comprobaremos si tiene parte decimal (un poco lioso todo ésto).
<?php
function esEntero($numero) {
if ($numero > 1) {
return (esEntero($numero -1));
} elseif ($numero < 0) {
/* como los núm. son simétricos
chequeamos lo convertimos a positvo */
return (esEntero((-1) * $numero -1));
} elseif (($numero > 0) AND ($numero < 1)) {
return ("NO");
} else {
/* el cero es entero por definición */
return ("SI");
}
} //fin function
echo "¿Es 0 un número entero? ".esEntero(0)."\n";
echo "¿Es 3.5 un número entero? ".esEntero(3.5)."\n";
echo "¿Es -7 un número entero? ".esEntero(-7)."\n";
echo "¿Es -9.2 un número entero? ".esEntero(9.2)."\n";
?>
Como todo esto es un poco lioso, veamos unos ejemplos que nos lo
aclará.
<?php
include ("header.inc");
echo "Hola Mundo";
include ("footer.inc");
?>
Si tenemos encuenta que el fichero header.inc contiene:
<html>
<body>
y el fichero footer.inc contiene:
</body>
</html>
Tiempo y fecha
En esta lección vamos a ver como algunas funciones relacionadas
con el tiempo y la fecha, así como algunos ejemplos prácticos.
time
Devuelve el numero de segundos transcurridos desde el 1 de Enero
de 1970. A esta forma de expresar fecha y hora se le denomina
tmestamp.
date(formato, timestamp)
La funció date devuelve una cte(formato, timestamp)
La funció date devuelve una cadena formateada según los código
de formato. Si no le pasamos la variable timestamp nos devuelve la
cadena formateada para la fecha y la hora actual.
Los códigos de formato para la función date son:
CODIGO DESCRIPCIÓN
a am o pm
A AM o PM
d Día del mes con ceros
D Abreviatura del día de la semana (inglés)
F Nombre del mes (inglés)
h Hora en formato 1-12
H Hora en formato 0-23
i Minutos
j Día del mes sin ceros
l Dia de la semana
m Número de mes (1-12)
M Abreviatura del mes (inglés)
s Segundos
y Año con 2 dígitos
Y Año con 4 dígitos
z Dia del año (1-365)
Las clases
Las Clases son máximo exponente de la Programación Orientada a
Objetos (POO). PHP no es un lenguaje orientad a objeto, pero
implementa las características que permiten definir las clases.
Pero, ¿qué son las Clases y para que sirven?, empecemos por los
segundo, sirven hacer el código más legible, y lo que es más
importante, reutilizable. Escribir una Clase es sin duda más largo
que escribir el código directamente, pero a la larga es más rentable
por su portabilidad a otras , pero a la larga es más rentable por su
portabilidad a otras aplicaciones y su mantenimiento.
Las Clases no son más que una serie de variables y funciones que
describen y actúan sobre algo. Por ejemplo, vamos a crear la clase
automóvil, la cual tendrá diversas variables, $color, $modelo,
$marca, $potencia, $matricula y habrá una serie de funciones que
actuarán sobre la clase automóvil como Precio(), Acelerar(),
Frenar(), Girar()y Reparar().
Como ejemplo vamos a crear la clase mysql, que nos servirá para
realizar consultas a las bases de datos MySQL.
<?php
class DB_mysql {
/* variables de conexión */
var $BaseDatos;
var $Servidor;
var $Usuario;
var $Clave;
// Conectamos al servidor
$this->Conexion_ID = mysql_connect($this->Servidor, $this-
>Usuario, $this->Clave);
if (!$this->Conexion_ID) {
$this->Error = "Ha fallado la conexión.";
return 0;
}
//seleccionamos la base de datos
if (!@mysql_select_db($this->BaseDatos, $this->Conexion_ID)) {
$this->Error = "Imposible abrir ".$this->BaseDatos ;
return 0;
}
/* Ejecuta un consulta */
function consulta($sql = ""){
if ($sql == "") {
$this->Error = "No ha especificado una consulta SQL";
return 0;
}
//ejecutamos la consulta
$this->Consulta_ID = @mysql_query($sql, $this->Conexion_ID);
if (!$this->Consulta_ID) {
$this->Errno = mysql_errno();
$this->Error = mysql_error();
}
Los formularios
Los Formularios no forman parte de PHP, sino del lenguaje
estánder de Internet, HTML, pero como éstos van a aperecer
muchas veces durante el curso, vamos a dedicar esta algunas
líneas a ellos. Lo que viene a continuación es HTML y no PHP.
Casilla de verificación:
<input type="checkbox" name="cambiar" value="ON">
Botón de opción:
<input type="radio" value="azul" checked name="color">
Menú desplegable:
<select size="1&qu class="codigo"><select size="1" name="dia">
<option selected value="lunes">lunes</option>
<option>martes</option>
<option value="miercoles">miercoles</option>
</select>
Boton de comando:
<input type="submit" value="enviar" name="enviar">
Campo oculto:
<input type="hidden" name="edad" value="55">
Este último tipo de campo resulta especialmente útil cuando que
remos pasar datos ocultos en un formulario.
<HTML>
<BODY>
<FORM METHOD="post" ACTION="mis_datos.php">
<input type="hidden" name="edad" value="55">
<p>Tu nombre <input type="text" name="nombre" size="30"
value="jose"></p>
<p>Tu sistema favorito
<select size="1" name="sistema">
<option selected value="Linux">Linux</option>
<option value="Unix">Unix</option>
<option value="Macintosh">Macintosh</option>
<option value=&qmargin-left: 75"><option
value="Windows">Windows</option>
</select></p>
<p>¿Te gusta el futbol ? <input type="checkbox" name="futbol"
value="ON"></p>
<p>¿Cual es tu sexo?</p>
<blockquote>
<p>Hombre<input type="radio" value="hombre" checked
name="sexo"></p>
<p>Mujer <input type="radio" name="sexo" value="mujer"></p>
</blockquote>
<p>Aficiones</p>
<p><textarea rows="5" name="aficiones" cols="28"></textarea></p>
<p><input type="submit" value="Enviar datos" name="enviar">
<input type="res-left: 50"> <input type="reset" value="Restablecer"
name="B2"></p>
</FORM>
</BODY>
<HTML>
<?PHP;
if ($enviar) {
echo "Hola <b>" . $nombre . "</b> que tal estás<BR>\n";
echo "Eres " . $sexo . "<BR>\n";
echo "Tienes " . $edad . "<BR>\n";
echo "Tu sistema favorito es " . $sistema . "<BR>\n";
if ($futbol) {
echo "Te gusta el futbol <BR>\n";
} else {
echo "NO te gusta el futbol <BR>\n";
}
if ($aficiones != "") {
echo "Tus aficiones son: <BR>\n";
echo nl2br($aficiones);
} else {
echo "NO tienes aficiones <BR>\n";
}
echo "<a href='$PHP_SELF'>VOLVER AL FORMULARIO</a>"
} else {
<HTML>
<BODY>
<FORM METHOD="post" ACTION="<?PHP echo $PHP_SELF ?>">
<input type="hidden" name="edad" value="55">
<p>Tu nombre <input type="text" name="nombre" size="30"
nombre" size="30" value="jose"></p>
<p>Tu sistema favorito
<select size="1" name="sistema">
<option selected value="Linux">Linux</option>
<option value="Unix">Unix</option>
<option value="Macintosh">Macintosh</option>
<option value="Windows">Windows</option>
</select></p>
<p>¿Te gusta el futbol ? <input type="checkbox" name="futbol"
value="ON"></p>
<p>¿Cual es tu sexo?</p>
<blockquote>
<p>Hombre<input type="radio" value="hombre" checked
name="sexo"></p>
<p>="codigo" style="margin-left: 100"><p>Mujer <input type="radio"
name="sexo" value="mujer"></p>
</blockquote>
<p>Aficiones</p>
<p><textarea rows="5" name="aficiones" cols="28"></textarea></p>
<p><input type="submit" value="Enviar datos" name="enviar">
<input type="reset" value="Restablecer" name="B2"></p>
</FORM>
</BODY>
</HTML>
<?PHP
} //fin IF
?>
La variable de entorno $PHP_SELF, es una variable de entorno que
nos devuelve el nombre del script que estamos ejecutando. Y por
último, hacer notar el uso de la función nl2br(), nl2br(), con la cuál
sustituimos los retornos de carro del texto, los cuáles no reconocen
los navegadores, por la etiqueta <BR>.
Descarga de archivos
Vamos a ver un caso especial, como descargar un archivo desde un
formulario. Para ello utilizaremos una etiqueta INPUT de tipo FILE,
soportada a partir de las versiones de los navegadores Nestcape
Navigato 2.0 e Internet Explorer 4.0.
/* para Linux/Unix */
if (! copy ($archivo, "/tmp/".$archivo_name)) {
echo "<h2>No se ha podido copiar el archivo</h2>\n";
}
} elseif ($archivo != "none" AND $archivo_size == 0) {
echo "<h2>Tamaño de arcft: 75">echo "<h2>Tamaño de archivo
superado</h2>\n";
} else {
echo "<h2>No ha escogido un archivo para descargar</h2>\n";
}
echo "<HR>\n";
}
?>
<FORM ENCTYPE="multipart/form-data" ACTION="<?php echo
$PHP_SELF ?>" METHOD="post">
<INPUT type="hidden" name="MAX_FILE_SIZE" value="100000">
<p><b>Archivo a descargar<b><br>
<INPUT type="file" name="archivo" size="35"></p>
<p><INPUT type="submit" name="enviar" value="Aceptar"></p>
</FORM>
</BODY>
</HTML>
Con esta función abrimos un fichero, bien sea local o una dirección
de internet (http:// o ftp://).
<?PHP
//abreo"><?PHP
//abre un archivo utilizando el protocolo HTTP
if ( ! fopen("http://www.ciberaula.com/", "r")) {
echo "El archivo no se puede abrir\n";
exit;
}
?>
fclose (indicador_archivo)
Con esta función cerramos el fichero que nos marca el indicador de
archivo, devuelve TRUE si el fichero se cierra correctamente y
FALSE sino se ha podido cerrar.
file_exists (fichero)
Esta función devuelve TRUE si el archivo especificado existe, y
FALSE en caso contrario.
<?PHP
if (file_exists("data.txt")) {
echo "El fichero existe";
} else {
echo "El fichero NO existe";
}
?>
MySQL crea por defecto al usuario root con todos los perimsos
posibles habilitados, podemos utilizar este usuario como
administrador o crear otro, por ejemplo mysqladmi. Como el usuario
root lo crea sin clave de acceso, lo primero que debemos hacer es
asignarle una:
Para borrarla
mysqladmin -u root -pmiclave drop mibasededatos
La estructura de MySQL
En el directorio /benc encontraremos ejemplos de script y SQL. En
el directoio /share están los mensajes de error del servidor para los
distinos idiomas. Los directorios /include y /lib contiene los fichero
*.h y las librerias necesarias, en /bin estan los ficheros ejecutables y
en /data encontraremos como subdirectorio cada una de las bases
de datos que hayamos creado.
Como hemos dicho, para cada base de datos que nostros creamos,
MySQL crea un directorio con el nombre que le hemos asignado a
la bade de datos. Dentro de este directorio, por cada tabla que
definamos MySQL va ha crear tres archivos: mitabla.ISD,
mitabla.ISM, mitabla.frm
El abla.frm
El archivo con extensión ISD, es el contine los datos de nuestra
tabla, el ISM contiene información acerca de las claves y otro datos
que MySQL utiliza para buscar datos en el fichero ISD. Y el archivo
frm contine la estructura de la propia tabla.
Seguridad
Como comentamos anteriormente, todo el sistema de permisos
MySQL lo guarda en una base de datos llamada mysql, la cuál se
componen de cinco tablas: host, user, db, tables_priv, colums_priv.
Tabla user
CAMPO TIPO POR DEFECTO
Host char(60)
User char(16)
Password char(16)
Select_priv enum('N','Y') N
Insert_priv enum('N','Y') N
Update_priv enum('N','Y') N
Delete_priv enum('N','Y') N
Create_priv enum('N','Y') N
Drop_priv enum('N','Y') N
Reload_priv enum('N','Y') N
Shutdown_priv enum('N','Y') N
Process_priv enum('N','Y') N
File_priv enum('N','Y') N
Grant_priv enum('N','Y') N
References_priv enum('N','Y') N
Index_priv enum('N','Y') N
Alter_priv enum('N','Y') N
Tabla host
CAMPO TIPO POR DEFECTO
Host char(60)
Db char(32)
Select_priv enum('N','Y') N
Insert_priv enum('N','Y') N
Update_priv enum('N','Y') N
Delete_priv enum('N','Y') N
Create_priv enum('N','Y') N
Drop_priv enum('N','Y') N
Grant_priv enum('N','Y') N
References_priv enum('N','Y') N
Index_priv enum('N','Y') N
Alter_priv enum('N','Y') N
Tabla db
mysql_affected_rows
--------------------------------------------------------------------------------
mysql_close
mysql_connect
--------------------------------------------------------------------------------
mysql_create_db
--------------------------------------------------------------------------------
mysql_data_seek
--------------------------------------------------------------------------------
mysql_dbname
--------------------------------------------------------------------------------
mysql_db_query
--------------------------------------------------------------------------------
mysql_drop_db
int mysql_drop_db(string database_name, int [link_identifier] );
--------------------------------------------------------------------------------
mysql_errno
int mysql_errno();
--------------------------------------------------------------------------------
mysql_error
string mysql_error();
<?php
mysql_connect("marliesle");
echo mysql_errno().": ".mysql_error()."<BR>";
mysql_select_db("nonexistentdb");
echo mysql_err_db("nonexistentdb");
echo mysql_errno().": ".mysql_error()."<BR>";
$conn = mysql_query("SELECT * FROM nonexistenttable");
echo mysql_errno().": ".mysql_error()."<BR>";
?>
mysql_fetch_array
<?php
mysql_connect($host,$user,$password);
$result = mysql_db_query("database","select * from table");
while($row = mysql_fetch_array($result)) {
echo $row["user_id"];
echo $row["fullname"];
}
mysql_free_result($result);
?>
--------------------------------------------------------------------------------
mysql_fetch_field
object mysql_fetch_field(int result, int [field_offset] );
--------------------------------------------------------------------------------
mysql_fetch_lengths
--------------------------------------------------------------------------------
mysql_fetch_object
--------------------------------------------------------------------------------
mysql_fetch_row
--------------------------------------------------------------------------------
mysql_field_name
--------------------------------------------------------------------------------
mysql_field_seek
--------------------------------------------------------------------------------
mysql_field_table
--------------------------------------------------------------------------------
mysql_field_type
--------------------------------------------------------------------------------
mysql_field_flags
--------------------------------------------------------------------------------
mysql_field_len
--------------------------------------------------------------------------------
mysql_free_result
--------------------------------------------------------------------------------
mysql_insert_id
int mysql_insert_id(void);
--------------------------------------------------------------------------------
mysql_list_fields
--------------------------------------------------------------------------------
mysql_list_dbs
int mysql_listdbs(void);
--------------------------------------------------------------------------------
mysql_list_tables
--------------------------------------------------------------------------------
mysql_num_fields
--------------------------------------------------------------------------------
mysql_num_rows
--------------------------------------------------------------------------------
mysql_pconnect
--------------------------------------------------------------------------------
mysql_query
--------------------------------------------------------------------------------
mysql_result
--------------------------------------------------------------------------------
mysql_select_db
--------------------------------------------------------------------------------
mysql_tablename
<?php
mysql_connect ("localhost:3306");
$i = 0;
$i++;
?>
Conexión a MySQL
<html>
<body>
<?php
$linkp>
<?php
mysql_select_db("mydb", $link);
?>
</body>
</html>
Vamos a ver dos formas de crear una base de datos y sus tablas.
Para ello vamos a crear la base de datos que nos servirá de
ejemplo en capitulos siguientes:
1. Linea de comandos
INSERT INTO agenda VALUES (0, 'Juan Pérez', 'C/ Laguna, 15.
Sevilla', '95.455.55.55', '[email protected]' )\g
INSERT INTO agenda VALUES (1, 'Luis García', 'C/ Betis, 22.
Cádiz', '95.655.66.33', '[email protected]' )\g
MySQL.
2. Script
<html>
<body>
<?PHP
define ("CONSTANTE", "Hola Mundo");
printf (CONSTANTE);
?>
</body>
</html>
$basedatos = "mydb";
exit;
$db = mysql_list_dbs();
$num_bd = mysql_num_rows($db);
$existe = "NO" ;
$existe = "SI" ;
break;
// si no existe la creamos
if ($existe == "NO") {
/* manera 1 */
if (! mysql_create_db($basedatos, $link)) {
exit;
exit;
} */
// craamos la tabla
} else {
?>
</body>
</html>
Consulta de la BD
<html>
<body>
<?php
mysql_select_db("mydb", $link);
?>
</body>
</html>
En este script hemos introducido dos novedades, la más obvia es la
sentencia de control while(), que tiene un funcionamiento similar al
de otros lenguajes, ejecuta una cosa mientras la condición sea
verdadera. En esta ocasión while() evalúa la función
mysql_fetch_row(), que devuelve un array con el contenido del
registro actual (que se almacena en $row) y avanza una posición en
la lista de registros devueltos en la consulta SQL.
Consulta modificada de BD
<html>
<body>
<?php
mysql_select_db("mydb", $link);
if ($row = mysql_fetch_array($result)){
do {
echo "<tr> \n";
echo "<td>".$row["email"]."</td>\n";
} else {
?>
</body>
</html>
Hay que destacar la utilización del punto (.), como operador para
concatenar cadenas.
campo "nombre".
Formulario entrada
<html>
<body>
<strong>Palabra clave:</strong>
</form>
</body>
</html>
Script búsqueda
<html>
<body>
<?php
if (!isset($buscar)){
echo &quo
exit;
mysql_select_db("mydb", $link);
if ($row = mysql_fetch_array($result)){
mysql_field_seek($result,0);
do {
echo "<td><a
href='mailto:"
href='mailto:".$row["email"]."'>".
$row["email"]."</a></td> \n";
} else {
?>
</body>
</html>
Añadir registros
<body>
<form method="poodigo"><body>
</form>
</body>
</html>
añadir registros
<html>
<body>
<?php
// process form
mysql_select_db("mydb",$db);
$sql = "INSERT INTO agenda (nombre, direccion, telefono, emT
INTO agenda (nombre, direccion, telefono, email) ";
$result = mysql_query($sql);
</body>
</html>
<html>
<body>
<?php
if ($enviar) {
// process form
mysql_select_db("mydb",$db);
$sql = "INSERT INTO agenda (nombre, direccion, telefono, email) ";
$result = mysql_query($sql);
}else{
?>
</form>
<?php
} //end if
?>
</body>
</html>
<html>
<body>
<?php
if (isset($id)){
// process form
mysql_select_db("mydb",$db);
$result = mysql_query($sql);
$result = mysql_query($sql);
}else{
</body>
</html>
<html>
<body>
<?php
if (icodigo"><?php
if (isset($id)){
// process form
mysql_select_db("mydb",$db);
$result = mysql_query($sql);
}else{
?>
</body>
</html>
Borrar registros
El proceso de borrar un registro es identico al de modificar, solo que
en vez de utilizar UPDATE utilizamos DELETE en la sentenica SQL.
Por tanto el script quedaría como sigue.
Borrado registros de BD
<html>
<body>
<?php
<body>
<?php
if (isset($id)){
// process form
mysql_select_db("mydb",$db);
$result = mysql_query($sql);
}else{
?>
</body>
</html>
Todo a la vez
<html>
<body>
<?php
if ($id) {
} else {
}
// Enviamos la sentencia SQL al servidor DB
$result = mysql_query($sql);
} elseif ($delete) {
// Borramos un registro
$result = mysql_query($sql);
} else {
de un formulario */
if (!$id) {
echo "<a
href=\$PHP_SELF?id=".$myrow["id"].">Modificar</a><br>";
}
}
?>
<?php
if ($id) {
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);
$id = $myrow["id"];
$nombre = $myrow["nombre"];
$direccion = $myrow["direccion"];
$telefono = $myrow["telefono"];
$email = $myrow["email"];
?>
</form>
<?php
} // End If if ($enviar)
?>
</body>
</html>
Instalación de MyODBC
Notas:
Los parámetrY
Y ya está todo.
Veamos como hacer para importa una tabla desde una base de
datos MySQL en un servidor remoto vía ODBC a una base de datos
MS Access.
Importar tabla".