Inicio Adelante

PHP/MySQL Tutorial Lección 1

Por Graeme Merrall

Traducción: Eliud Herrera Rojas

Mientras tu has estado viviendo en Marte durante los pasados 6 u 8 meses, tu has oído sobre el Open Source Software (OSS). Este movimiento ha tenido mucha importancia dado que los grandes muchachos están tomando en cuenta la noticia. Compañías como ORABLE, INFORMIX y una multitud de otros están liberando sus productos de base de datos para los carteles de niño en el movimiento OSS, Linux.

Teniendo una gran complejidad de RDBMS (Relation Data Base Managament System)es tan bien y tan bueno que tu conozcas que hacer con ellas. Pero quizá estas solo introduciéndote en el mundo de las bases de datos. Tu has leído el articulo de Jay(Liga) y quiere poner tu propio manejador de base de datos en el Web. Pero no tienes los recursos o deseas una ASP por el mismo precio que una Base de Datos. Quieres algunas cosas gratis, y quieres trabajar con UNIX.

Entra a PHP y MySQL. Estos dos componentes hacen la mejor combinación de manejadores de datos para sitios Web en el planeta. No necesitas creerme esto. Un no Oficial Netcraft(liga) examino y demostró que el uso de PHP ha saltado de 7,500 host en Junio de 1998 a 410,000 host en Marzo de 1999. No esta tan mal. La combinación también ha ganado el premio de Bases de Datos en Webcon98.

MySQL es una pequeña, compacta servidor de base de datos ideal por pequeña - y no solo para pequeñas - aplicaciones. En adición a soporta el standard SQL (ANSI), compila en un numero de plataformas y tiene habilidades de multithreading en servidores UNIX, lo cual le da gran desempeño. Para personas que no utilizan UNIX puede correr como un servicio en WinNT y también como un proceso normal en maquinas con Win95/98.

PHP- es un lenguaje script del lado del servidor. Si has visto ASP(liga)podría ser familiar con el código embebido dentro de una pagina HTML. Como ASP, el script de PHP es procesado por el servidor de Web. Después el servidor corre con el código PHP y retorna el viejo código HTML al Navegador. Entonces el tipo de interacción permite algunas operaciones complejas.

 

En adición a ser libre (MySQL no tiene alguna licencia con restricciones), la combinación PHP-MySQL es también multiplataforma, lo cual significa que puede ser desarrollado en Windows y servir para una plataforma UNIX. También, PHP puede correr en un proceso externo de un CGI, un script interprete montado solo o pegado a un modulo Apache.

 

Si esta interesado, PHP también soporta un numero masivo de bases de datos, incluyendo INFORMIX, ORACLE, Sybase, Solid y PostgreSQL, lo hace también como el ubicuo ODBC.

PHP también soporta un host de otros desarrollos en el limite tecnológico del desarrollo de Internet. Esto incluye autenticación, XML, creación de imágenes dinámicas, WDDX, parte de soporta de memoria y creación dinámica de documentación PDF, y si esto no es suficiente, PHP es fácil de extender, así que tu puedes rodar tu propia solución si tu eres un programador sabihondo.

Finalmente desde ambas partes son colaborativas por naturaleza, y siempre hay cientos de soportes de documentación y listas de email. Los errores son reparados rápidamente y los requisitos para desarrollos son siempre escuchados, evaluados, y feasibles de implementar.

Suficiente platica! Vamos sobre lo que nos interesa, el tutorial.

La Lección 1 esta cubriendo la instalación de estos productos en ambos sistemas, UNIX y Windows. Si no necesitas preocuparte acerca de que (Tu estas trabajando en una maquina con ISP, quizá) saltemos a los primeros scripts de ejemplos (liga) donde la magia comienza.

En la lección 2 observaremos algunos de los mas complejos y buenerrimos scripts, incluyendo ciclos, formas de entrada, y envío de datos de una forma o la base de datos.

 

En la lección 3 podría cubrir la validación y las técnicas para hacer tus scrips PHP inteligentes y limpios.

Vamos, adelante..!!

 

INSTALANDO MySQL


 

Saltemos correctamente, salva tu mismo una copia de estos grandes paquetes y a darle!

Esto no es un no es un simple genero. Existen muchas opciones disponibles para que tu la obtengas, compiles e instales el software. Tratemos primero con MySQL, después iremos a obtener PHP.

La central de MySQL es http://www.mysql.com/ . Como localizas un programa de esta estatura, existen millones de mirrors localizados alrededor del mundo, has un favor a Internet y escoge alguno cercano a ti.

Has encontrado cientos de opciones en este punto. SI no lo vas a hacer tu mismo, entonces graba el código fuente. SI no eres tan bravo, existen algunos binarios precompilados para otras plataformas disponibles para bajarlos.

En suma, existen versiones shareware de MySQL para usuarios de Windows. Esta es una versión antigua de MySQL. Si tu quieres la versión mas reciente, tu tendrás que registrar la licencia. Existen drivers de ODBC que permiten a tus aplicaciones relacionarse con MySQL. Otras varias excitantes piezas son acultas en el sitio, demasiado, así que echa un vistazo.

 

Las versiones de UNIX precompiladas y las de Windows , son tan simple como desempaquetar y ocupar, y estos no requieren mucha explicación. Esto lo dejamos para la compilación del código fuente. Los usuarios de Windows, por favor mantener en mente que necesitan correr mysql en el directorio mysql/bin.

Baja el archivo comprimido en tu directorio fuente y descomprimelo-untar usándolo gzip y tar. La manera mas rápida de hacerlo es tecleando:

gunzip < mysql-xxxx.tar.gz | tar xvf -

Donde xxxx es el numero de la versión. Esto podría crear un directorio llamado mysql-xxxx, el cual contiene los códigos fuentes. Muévete al directorio tecleando cd mysql-xxxx y checalos varios archivos README e INSTALL. Ellos son salvavidas en muchas situaciones peligrosas.

MySQL viene con un script de configuración. Simplemente teclea ./configure y deja que las cosas ocurran por si mismas. Si tu necesitas especificar que sucede y donde, teclea ./configure --help y te da una lista de opciones para escoger. Por ejemplo si estas compilando en una maquina con poca memoria, puedes optar por la bandera --with-low-memory . Me gusta instalar MySQL en un árbol próximo de directorios mejor dicho en varias localidades de mi maquina, así yo digo la localización de la instalación con la bandera --prefix .

 

También puedes especificar otras varias opciones, como que compilar y que saltarse. Asumiremos que deseamos todas la cosas bajo /usr/local/mysql en nuestro servidor.

Esto significa que deberías de teclear ./configure --prefix=/usr/local/mysql.

El script de configuración podría correr e inspeccionar tu sistema y entonces construir lo archivos necesarios para la compilación exitosa. Si falla, pudieses obtener un mensaje de error de mucha ayuda diciéndote el porque. Con frecuencia, podrías encontrar en el script por que fallo, cuando estés observando o buscando las librerías de hilos. Checa que tengas los MIT-pthreads instalados en tu maquina, si no adiciónalos. Los usuarios de Linux, tendrían que obtener los Linuxthreads. Estas son librerías criticas que alojan la multitarea de MySQL. (Que sirve para correr múltiples versiones de si mismo). Las distribuciones recientes de Linux, pueden contener estas librerías instaladas.

Si todas las cosas van de acuerdo al plan, simplemente teclea make y tomate un café. MySQL es un programa complejo y toma algún tiempo compilarlo. SI tu tienes un error, checa la documentación y ve si existe alguna cosa especificada que hayas olvidado en particular para tu sistema operativo.

Después, teclea make install y todos los archivos necesarios quedaran instalados en todos los lugares. Ahora estas casi listo para seguir. Si tu eres nuevo en MySQL y nunca lo has instalado antes, necesitas crear los permisos por default, así que teclea... scripts/mysql_install_db para darlos de alta.

Así es. Estas listo para continuar. Todo lo que necesitamos es adicionar la habilidad de inicializar y para el servidor en reinicio y apagado. Y si, existe un script que puede hacerlo bien. Teclea mysql.server.start para iniciarlizarlo, y mysql.server.stop para detener el servidor. Esto es obvio realmente. Puedes iniciarlizar el servidor manualmente(así que tu puedes ejecutar sin rebotear) entrar al directorio raíz (root) de tu instalación de MySQL ( /usr/local/mysql ) y teclea bin/safe_mysqld &

Estamos a la mitad. Ahora entremos a PHP.

 

 

INSTALANDO PHP


Phew, prometedoramente has obtenido e instalado MySQL y esta corriendo ahora. Esto fue casi divertido! Ahora hagamoslo para PHP. Este proceso no es más fácil, pero los arreglos de opciones son deslumbrantes. No te desanimes, sin embargo. Puedes siempre retroceder y recompilar PHP para adicionar o remover las opciones como las necesites.

El home de PHP esta en http://www.php.net/ . El sitio de PHP es una mina de información, de listas de proyectos y de reporte de errores. Así como MySQL, podrías escoger un mirror cercano. Obviamente buscaras la sección en donde bajar y obtener el PHP.

Tu rango de opciones aquí es un poco más limitado. Unos pocos binarios precompilados están disponibles, pero estos son experimentales. Si estas en cualquier plataforma, exceptuando a Windows, guarda el código fuente y compílalo tu mismo.

Primeramente vamos a cubrir a los usuarios de Windows. Cuando uses PHP, una practica común es desarrollarlo en una maquina con Windows y entonces correr tu sitio en un servidor de UNIX. Podrías ponerle fin y por ti mismo, lo cual significa que necesitas ser experto en la instalación para ambas plataformas.

Graba los binarios en Windows y descomprímelos usando tu descompresor favorito en un directorio en el drive C llamado php3. El archivo README ofrecido trata algunos de los detalles de la instalación, pero hay la versión Reader´s Digest: Si tu quieres instalar PHP en algún otro folder que no sea c:\php3, necesitarias editar el archivo .inf que viene con PHP.

 

En el directorio php3, podrás encontrar muchos archivos .dll. Toma todos los archivos que no inicien con php_ y muevelos al directorio Windows/System . Entonces renombra php.ini-dis a php3.ini y muevelos al directorio /windows. Si abres alguno de estos archivos podrías ver que hay muchas cosas interesantes que cambiar. Por ahora solo comenta la línea:

Extension=php3_mysql.dll

Si estas utilizando Apache para Win32, levanta al Apache para que reconozca e archivos PHP. Dependiendo de la versión de Apache que estés utilizando, podrías necesitar adicionar lo siguiente a los archivos http.con o al srm.conf:

ScriptAlias /php3/"c:/path-to-php-dir/"

AddType application/x-httpd-php3.php3

Action application/x-httpd-php3"/php3/php.exe"

 

O si estas usando IIS o PWS, con el click derecho en php_lis_reg.inf y selecciona 'Install'. Podrías necesitar reinicializar la maquina para IIS para obtener los cambios.

Ok, ahora que ya estuvo con Windows, vamos con UNIX. De acuerdo, estaríamos compilando del código fuente. Como con MySQL, baja y descomprime el código fuente. De nuevo, PHP viene con un script de configuración. No puedes dejar ahora mismo con los defaults aquí, reflexionando. Ejecuta ./configure -help | more para ver paginas y paginas de nuevas e interesantes opciones. Has decidido entre compilar como un CGI o como un Modulo Apache. Si estas utilizando un servidor de Web Apache y eres capaz de compilarlo, usa el modulo: Esto es más rápido y fácil de usar. En otro caso, puedes irte con la versión CGI. Necesitaremos compilar el soporte para MySQL.

 

Por ahora asumiremos que correremos un modulo con soporte para MySQL. Si quieres adicionarlo otras opciones u otras librerías, lo puedes hacer mas tarde. Teclea:

./configure --with-apache=/path/to/apache/dir --with-mysql=/usr/local/mysql

Salta la opción -with-apache si estas creando la versión para CGI. El proceso de configuración podría correr y producir los archivos de sistema relevantes. Ahora simplemente teclea de nuevo make .

Es tiempo para otro café. Si inicias sintiéndote un poco nervioso y tembloroso en este punto, no te preocupes. Todos podrías estar ansiosos durante nuestra primera instalación de PHP Tomate algunos cafés más.

 

Si estas creando la versión CGI, estas listo para darle vuelta a la hoja, simplemente copia el ejecutable resultante en un tu archivo CGI. Para los usuarios de los módulos de Apache, teclear make install para copiar los archivos a directorio del Apache. De ahí, sigue las instrucciones para adicionar un modulo al Apache y recompilalo.

Necesitaras decirle al servidor de Web como procesara las paginas ahora atraves del programa PHP. Si no estas usando Apache, necesitaras checar la documentación de tu servidor de Web para saber como obtener los documentos con una extensión .php3. Los usuarios del Apache 1.3.x pueden simplemente adicionar addtypeapplication/x-httpd-php3 .php3 al archivo httpd.conf o al srm.conf. Si estas utilizando la versión CGI, necesitarías adicionar lo siguiente antes de AddType:

ScriptAlias /php3/"/path-to-php-dir/" AddType application/x-httpd-php-3 .php3 Action

Application/x-httpd-php3"/php3/php"

¡Eso es!. Con algo de suerte, tendrás corriendo MySQL y funcionando el PHP. No olvides de checar los FAQS y la documentación si estas atorado. También intenta en las listas de email (Liga).

Ahora que ya has manejado todo esto, vamos a ponerlo en movimiento.

 

 

TU PRIMER SCRIPT

 

Estarás contento de conocer que realmente la suerte esta detrás de ti. La instalación del software siempre es un hoyo negro porque existen muchos cambios de sistemas a sistemas. Pero con un poco de suerte tu base de datos esta corriendo y el PHP esta compilado e instalado en nuestro servidor de Web y es capaz de reconocer documentos con extensiones .php3.

Metámonos correctamente y escribamos nuestro primer script. Crea un archivo de texto conteniendo lo siguiente:

<html>

<body>

<?php

$myvar = "Hola mundo";

echo $myvar;

?>

</body>

</html>

Ahora llamaremos la siguiente URL, para instancias, http://myserver/test.php3 . Podrías ver una pagina conteniendo el texto "Hola mundo". Si obtienes un mensaje de error, checa la documentación de PHP y observa que todas las cosas estén correctamente.

Eso es ! Esto es tu primer script. Si ves el código HTML de tu pagina, veras que solo hay el texto "Hola mundo".

Esto es a causa que la maquina PHP esta examinando la pagina, procesando algún bloque de código que encontró, y retorno solo HTML.

La primera cosa que debiste notar del script de arriba, son los delimitadores. Hay líneas que indican el inicio y el fin del bloque. El poder de PHP, es que este puede ser introducido en cualquier lugar y yo malamente donde sea - en tu código, de alguna manera. Mas tarde veremos algunos interesantes usos para esto, pero por ahora vamos a dejarlo así de simple. Si quieres, puedes configurar PHP para usar etiquetas cortas, pero no son compatibles con XML, se cuidadoso. Si estas haciendo un switch para ASP, puedes configurar el PHP para usar delimitadores <% y %>.

 

Otra cosa que debes notar es el punto y coma, al final de cada línea. Esto lo conoceremos como un separador y sirve para distinguir un grupo de instrucciones de otro. Es factible escribir un programa PHP en una línea y separarlo en porciones con puntos y comas. Pero será una confusión, así que adicionamos una nueva línea después de cada punto y coma. Solo recuerda que cada línea debe finalizar con un punto y coma.

Finalmente, observas que la palabra myvar inicia con un signo de dólar($). Este símbolo le dice a PHP que es una variable. Nosotros asignamos la palabra "Hola mundo" a la variable $myvar. Una variable puede también contener números o un arreglo. De cualquier manera, todas las variables inician con un símbolo de dólar.

El poder Real de PHP viene de sus funciones. Estas son básicamente instrucciones procesadas. Si adicionaste, todas las instrucciones del add-ins opcional de PHP, hay más de 700 funciones disponibles.

Así que hay bastantes cositas que puedes hacer.

Ahora vamos a adicionarle MySQL a la pintura..

 

DANDO DE ALTA UNA BASE DE DATOS


Ahora estamos listos para conectarnos a MySQL. Una forma manejable de conocer que opciones están disponibles en PHP y que hacen en tu servidor el usando la función phpinfo() . Crea un script con lo siguiente:

<html>

<body>

<?php

phpinfo();

?>

</body>

</html>

Salva y ve este script atraves de tu servidor de Web. Observaras una pagina con información útil e interesante como esta (Liga). Es información dice todo acerca de tu servidor, el ambiente interno de las variables del servidor de Web, las opciones que son compiladas y mucho más.

Si MySQL esta aquí, entonces estas listo para continuar...

Antes que puedas obtener datos fuera de MySQL, tienes que poner datos en ella. No hay una manera fácil de hacer esta etapa. La mayoría de los scripts de PHP viene con un archivo conocido como Core Dump que contiene todos los datos requeridos para crear y almacenar una base de datos MySQL. La inserción y salida de este proceso esta realmente fuera del objetivo de este tutorial, así que podríamos hacerlo solo para ti.

MySQL utiliza su propia tabla de usuarios. En la instalación, un usuario default (root) es automáticamente creado sin password. Es el administrador de la base de datos, para adicionar nuevos usuarios con varios permisos, pero podría escribir un articulo entero sobre esto, así que la controlaríamos como usuario root. Si tu levantas tu propio servidor y base de datos, es vital que asignes un password al usuario root.

 

De cualquier manera, entremos a la base de datos. Para los usuarios de Win32. Disculpen, pero esto requiere algún trabajo en DOS. Tendrá que utilizar una ventana DOS y teclear siempre todas las cosas en la ventana que esta corriendo. No se les olvide teclear toda la ruta del directorio MySQL/bin con tus comandos. Los usuarios de UNIX, pueden trabajar en el directorio bin de MySQL, pero debes iniciar cada comando con ./ para correr los comandos.

La primera cosa que necesitamos, es crear la primera base de datos, desde la línea de comando, teclear:

Mysqladmin -u root create mydb

 

Esto crea la base de datos llamada "mydb". La bandera dice a MySQL que estas haciendo esto como usuario root.

Próximamente adicionaremos datos utilizando algún ejemplo favorito de todos, los empleados. Vamos a necesitar que el montón de archivos que mencione anteriormente. Si estas interesado en como al mismo tiempo revisamos el manual que viene con MySQL o checa la liga http://www.turbolift.com/mysql/ .

Copia y pega el siguiente texto en el archivo de MySQL salvándolo en el directorio bin.(Pondrías al archivo mydb.dump.)

CREATE TABLE employees ( id tinyint(4) DEFAULT '0' NOT NULL AUTO_INCREMENT, first varchar(20), last varchar(20)),

INSERT INTO employees VALUES (2, 'John', 'Roberts','45 There St, Townville','Telphonist`);

INSERT INTO employees VALUES (3,'Brad','Johnson','1/34 Nowhere Blvd, Snowston','Doorman');

 

Si la línea se envuelve, ten por seguro que cada declaración insertada es una nueva línea. Ahora insertaríamos en la base de datos mydb, Desde la línea de comandos tecleamos:

Mysql -u root mydb < mydb.dump

 

Podrías tener algunos errores ejecutando esto. Si los tienes checa para una línea envuelta incorrecta.

 

REARRANCANDO

 

OK, ahora tenemos los datos en la base de datos. Vamos a hacer algunas cosas con ello. Copia y pega las siguiente línea de texto y salva el archivo en el documento del servidor de Web con la extensión .php3.

					

<html>

<body>

<?php

$db = mysql_connect("localhost", "root");

mysql_select_db("mydb",$db);

$result = mysql_query("SELECT * FROM employees",$db);

printf("First Name: %s<br>\n", mysql_result($result,0,"first"));

printf("Last Name: %s<br>\n", mysql_result($result,0,"last"));

printf("Address: %s<br>\n", mysql_result($result,0,"address"));

printf("Position: %s<br>\n", mysql_result($result,0,"position"));

?>

</body>

</html>

 

Explicaremos que sucede aquí. La función mysql_connect() abre una conexión al servidor MySQL en el host especificado (en este caso es el host local) accesandolo con el nombre del usuario (root). Si necesitas especificar un password, puedes adicionarlo también. El resultado de la conexión es almacenada en la variable $db.

Mysql_select_db() esto le dice a PHP que algunas consultas que estamos haciendo contra la base de datos mydb. Podríamos crear múltiples conexiones a las bases de datos en diferentes servidores. Pero por ahora, dejaremos esto así.

La siguiente, mysql_query() hace todo el trabajo duro. Usando el identificador de la conexión a la base de datos, este envía una línea de SQL al servidor MySQL para ser procesada. Los resultados que son retornados son almacenados en la variable $result.

Finalmente, mysql_result() es usado para desplegar los valores de los campos de nuestra consulta. Usando $result, nos vamos a la primera línea, la cual esta numerada como 0 y desplegamos el valor de los campos especificados.

La sintaxis de print puede ser vista como las utilizadas en C o Perl. En cada una de las líneas de encima, los % indican que la variable en la segunda mitad de la expresión (por ejemplo, mysql_resutl($result,0,"position")) pueden ser manejados como una cadena e imprimirlos. Para más información sobre print, puedes ver la documentación de PHP.

http://www.php3.net/manual/function.printf.php3

 

Hasta aquí tenemos esto. Exitosamente compilamos, instalamos y configuramos MySQL y PHP, y ejecutamos un script simple para recuperar información. En la lección 2, con destreza y maña desplegaremos múltiples récords y al parejo enviaremos datos a y de la base de datos.

Sigamos, ahora.

 

Inicio Adelante
1