PHP
Fuente http://www.mclibre.org/consultar/php/index.html
Como Funciona
Historia
PHP fue creado por Rasmus Lerdorf en 1995. El nombre PHP significaba entonces Personal Home Page y haca referencia a que era un lenguaje diseado para facilitar la generacin de pginas web, en primer lugar en el sitio web personal de Rasmus Lerdorf y rpidamente en muchos sitios. Desde entonces, PHP no ha dejado de evolucionar, proporcionando nuevas caractersticas. En noviembre de 1997 Rasmus Lerdorf public una segunda versin del lenguaje, PHP 2. En junio de 1998 se public PHP 3. Esta versin fue creada por Zeev Suraski y Andi Gutmans, que desde entonces dirigen el desarrollo de PHP (con la colaboracin de Lerdorf). A partir de esta versin PHP significa PHP: Hypertext Preprocessor (aadiendose a la lista de acrnimos recursivos como GNU, Lame, Wine, RPM, etc.). La caracterstica ms decisiva de esta versin fue la mejora de la la extensibilidad del lenguaje, permitiendo que muchos programadores aportaran nuevos mdulos, pero esta versin tambin simplific la sintaxis del lenguaje e introdujo la posibilidad de utilizar una sintaxis orientada a objetos. En 1999 Zeev Surski y Andi Gutmans crearon la empresa Zend Technologies, que desarrolla productos basados en PHP (servidores, editores, etc.). En mayo de 2000 se public PHP 4, que inclua un nuevo motor llamado Zend Engine. Esta versin era bastante ms rpida que la anterior y aade nuevas caractersticas como las sesiones. En julio de 2004 se public PHP 5, que inclua un nuevo motor llamado Zend Engine 2. La caracterstica ms importante de esta versin es la mejora de la programacin orientada a objetos. La siguiente versin prevista, que se tendra que publicar como PHP 6, se fij el objetivo de dar a PHP soporte completo de Unicode, el juego de caracteres universal. Pero ese objetivo ha resultado ser mucho ms difcil de conseguir de lo esperado y en 2010 prcticamente se tir la toalla y sigue sin estar claro si se alcanzar el objetivo.
Criticas
Como cualquier lenguaje de programacin, es fcil encontrar en la web opiniones muy crticas hacia PHP, sobre todo en referencia a la seguridad. Al leer estas crticas hay que tener en cuenta que:
PHP ha evolucionado mucho. Muchos defectos del lenguaje han sido corregidos en versiones posteriores, por lo que conviene comprobar si las opiniones que se leen no son opiniones antiguas que ya no tienen sentido. Por el mismo motivo, hay que tener cuidado cuando se leen manuales o tutoriales antiguos, porque pueden estar recomendando tcnicas de programacin obsoletas. PHP es extremadamente popular. Muchos programas de PHP han sido escritos por programadores que intentan compensar con su entusiasmo su falta de conocimientos, pero PHP no es un lenguaje intrnsecamente malo o inseguro.
Primeras pginas
<?php print "<p>Hola</p>\n"; ?>
<p>Hola</p>
Primeras paginas
<p>Hola</p> <?php print "<p>Cmo ests?</p>\n"; print "<p>Adios</p>\n"; ?>
<p>Hola</p> <p>Cmo ests?</p> <p>Adios</p>
Primeras Paginas Variables y comentarios
<?php $saludo = "Hola"; // Se define una variable ?> <p> <?php print "$saludo"; // Se escribe el valor de la variable /* Dentro de un fragmento PHP no se pueden escribir etiquetas html sueltas, tienen que estar siempre incluidas en instrucciones print */ ?> </p>
<p>Hola</p>
Pagina HTML desde PHP
<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>Pgina vlida XHTML 1.0 Strict</title> </head> <body> <p>El cdigo HTML de esta pgina es XHTML 1.0 Strict vlido</p> </body> </html>
Pagina HTML desde PHP
<?php print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?> <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\"> <head> <meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-1\" /> <title>Pgina vlida XHTML 1.0 Strict</title> </head> <body> <p>El cdigo HTML de esta pgina es XHTML 1.0 Strict vlido</p> </body> </html>"; ?>
Cadenas
Algunos caracteres tienen en PHP un significado especial (el $ se utiliza para como primer carcter de los nombres de las variables, las comillas dobles o simples se utilizan como delimitadores de las cadenas, etc.), por lo que pueden causar problemas ms o menos graves. <?php print "<p>Los nombres de variables empiezan por $. Por ejemplo $nombre.</p>"; ?> En este caso simplemente se produce un aviso y el programa se ejecuta, aunque no con el resultado deseado. Al encontrar $nombre en la cadena, PHP entiende que queremos escribir el valor de la variable llamada $nombre. Como esa variable no est definida previamente, se produce un aviso de variable no definida y al escribir la cadena no se escribe nada en el lugar de $nombre <?php print "<p>las cadenas se delimitan con comillas (" o ').</p>"; ?>
Caracteres especiales
Carcter \\ \$ \ \ \n \t \XXX \xXX \r \v \e \f Significado Carcter contrabarra Carcter dlar Carcter comilla doble (en una cadena delimitada por comillas dobles) Carcter comilla simple (en una cadena delimitada por comillas simples) Salto de lnea Tabulador horizontal Carcter de cdigo XXX en octal Carcter de cdigo XX en hexadecimal Retorno de carro Tabulador vertical Escape Salto de pgina (en impresoras antiguas)
Comillas dobles y simples
<?php print "<p>Esto es una comilla simple: </p>"; ?> <p>Esto es una comilla simple: '</p> -------------------------<?php print '<p>Esto es una comilla doble: "</p>'; ?> <p>Esto es una comilla doble: "</p> ---------------------------<?php print "<p>Esto es una comilla simple: ' y esto una comilla doble: \"</p>"; ?> <p>Esto es una comilla simple: ' y esto una comilla doble: "</p> -----------------------------<?php print '<p>Esto es una comilla simple: \' y esto una comilla doble: "</p>'; ?> <p>Esto es una comilla simple: ' y esto una comilla doble: "</p> --------------------------
Comillas dobles y simples
<?php $cadena = "Hola"; print "<p>La variable contiene el valor: $cadena</p>"; ?> <p>La variable contiene el valor: Hola</p> --------------------------<?php $cadena = "Hola"; print '<p>La variable contiene el valor: $cadena</p>'; ?> <p>La variable contiene el valor: $cadena</p>
Variables
<?php $cadena = "Pasa"; print "<p>$cadena</p>\n"; $cadena .= "tiempos"; print "<p>$cadena</p>\n"; ?> ------------------------------------<p>Pasa</p> <p>Pasatiempos</p>
Variables
<?php $edad = 15; // La variable $edad tiene ahora el valor 15 $nombre = "Pepito Conejo" // La variable $nombre tiene ahora el valor Pepito Conejo ?> <?php $edad = 15; print $edad; $edad = 20; print $edad; ?> 1520 <?php $radio = 15; $perimetro = 2 * 3.14 * 15; print $perimetro; ?> 94.2
Variables Texto
<?php $cadena1 = "Corre"; $cadena2 = "ve"; $cadena3 = "idile"; $cadena4 = $cadena1 . $cadena2 . $cadena3; print "<p>$cadena4</p>\n"; ?> <p>Correveidile</p> ------------------------------<?php $nombre = "Don Pepito"; print "<p>Hola, " . $nombre . "! Cmo est usted?</p>\n"; ?> <p>Hola, Don Pepito! Cmo est usted?</p>
Variables en cadenas
<?php $numero = 5000; $texto = "cinco mil"; $seEscribe = array("separado", "junto"); print "<p>El nmero $numero se escribe $seEscribe[0]: $texto</p>\n"; ?>
<p>El nmero 5000 se escribe separado: cinco mil</p>
Variables en cadenas
<?php $x = 3; $y = 4; print "<p>Suma: $x + $y = " . ($x+$y) . "</p>\n"; print "<p>Multiplicacin: $x x $y = " . ($x*$y) . "</p>\n"; ?> <p>Suma: 3 + 4 = 7</p> <p>Multiplicacin: 3 x 4 = 12</p>
Tipos de variables Enteros
<?php $maximo = PHP_INT_MAX; print "<p>El mayor entero que se puede guardar en una variable entera es $maximo</p>\n"; $demasiado = (int)($maximo+1); print "<p>Si se intenta guardar 1 ms, el resultado es $demasiado</p>\n"; ?> <p>El mayor entero que se puede guardar en una variable entera es 2147483647</p> <p>Si se intenta guardar 1 ms, el resultado es -2147483648</p>
Tipos de variables decimales
<?php $lado = 14.5; $area = $lado * $lado;
print "<p>Un cuadrado de lado $lado cm \ntiene un rea de $area cm<sup>2</sup>.</p>\n"; ?> <p>Un cuadrado de lado 14.5 cm tiene un rea de 210.25 cm<sup>2</sup>.</p>
Tipos de variables string
<?php $saludo = "Hola, Don Pepito"; print "<p>$saludo</p>\n"; $saludo[16] = "n"; print "<p>$saludo</p>\n"; $saludo[25] = "!"; print "<pre>$saludo</pre>\n"; ?> <p>Hola, Don Pepito</p> <p>Hola, Don Pepiton</p> <pre>Hola, Don Pepiton !</pre>
Tipos de variables string
<?php $saludo = "Hola, Don Pepito"; print "<p>$saludo</p>\n";
$saludo[4] = ""; print "<p>$saludo</p>\n"; ?> <p>Hola, Don Pepito</p> <p>Hola Don Pepito</p>
Tipos de variables Booleano
<?php $contestar = 5; if ($contestar == true) { print "<p>La contrasea es pezespada.</p>\n"; } if ($contestar == false) { print "<p>Mis labios estn sellados.</p>\n"; } ?> <p>La contrasea es pezespada.</p> <?php $contestar = 0.0; if ($contestar == true) { print "<p>La contrasea es pezespada.</p>\n"; } if ($contestar == false) { print "<p>Mis labios estn sellados.</p>\n"; } ?> <p>Mis labios estn sellados.</p>
Constanes
<?php define("PI", 3.14); print "<p>El valor de pi es " . PI . "</p>\n"; ?> <p>El valor de pi es 3.14</p> <?php define("AUTOR", "Bartolom Sintes Marco"); print "<p>Autor: " . AUTOR . "</p>\n"; ?> <p>Autor: Bartolom Sintes Marco</p>
Constantes
Las constantes no se sustituyen dentro de una cadena por lo que es necesario sacarlas para mostrar su valor. <?php define("Pi", 3.14); print "<p>El valor de pi es PI</p>\n"; print "<p>El valor de pi es " . PI . "</p>\n"; ?> <p>El valor de pi es 3.14</p> <p>El valor de pi es PI </p>
Constantes
El nmero de constantes predefinidas depende de los mdulos cargados en php.ini. La funcin get_defined_constants() devuelve las constantes predefinidas en el servidor que estemos utilizando: <?php print "<pre>"; print_r(get_defined_constants()); print "</pre>\n"; ?> <pre>Array ( [E_ERROR] => 1 [E_RECOVERABLE_ERROR] => 4096 [E_WARNING] => 2 [E_PARSE] => 4 [E_NOTICE] => 8 [E_STRICT] => 2048 ... ) </pre>
Constante
PHP_INT_MAX es el valor del mayor entero que se puede guardar en una variable de tipo entero. <?php $maximo = PHP_INT_MAX; print "<p>El mayor entero que se puede guardar \nen una variable entera es $maximo</p>\n"; ?> <p>El mayor entero que se puede guardar en una variable entera es 2147483647</p>
Errores sintcticos
unexpected character <?php print <p>Hola</p>\n ?> Parse error: syntax error, unexpected '<' in prueba.php on line 2
unexpected T_CONSTANT_ENCAPSED_STRING <?php primt "<p>Hola</p>\n"; ?> Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in prueba.php on line 2
Errores sintcticos
unexpected T_PRINT <?php print "<p>Hola</p>\n" print "<p>Adios</p>\n" ?> Parse error: syntax error, unexpected T_PRINT in prueba.php on line 3 final inesperado <?php $edad = 15; if ($edad < 19) { print "<p>Menor de edad</p>\n"; ?> Parse error: syntax error, unexpected $end in prueba.php on line 5
Errores sintcticos
parntesis inesperado <?php $resultado = 2 * 3 + 4); print "<p>Resultado: $resultado</p>\n"; ?> Parse error: syntax error, unexpected ')' in prueba.php on line 2
Advertencias
divisin por cero <?php $numero = 0; $resultado = 1 / $numero; print "<p>Resultado: $resultado</p>"; ?> Warning: Division by zero in prueba.php on line 3
Resultado:
uso de cabeceras despus de escribir texto <?php print "<p>Hola</p>\n"; header("location:index.php"); exit(); ?> Hola Warning: Cannot modify header information - headers already sent by (output started at prueba.php:2) in prueba.php on line 3
Avisos y Obsolescencias
variable no definida <?php print "<p>Edad: $edad</p>"; ?> Notice: Undefined variable: edad in prueba.php on line 2 Edad:
funcin obsoleta <?php $cadena = 'ABC'; if (eregi('a', $cadena)) { print "'$cadena' contiene una 'a' o una 'A'\n"; } ?> Deprecated: Function eregi() is deprecated in prueba.php on line 3
'ABC' contiene una 'a' o una 'A'
Operadores
Ejemplo -$a $a + $b $a - $b $a * $b $a / $b Nombre Negacin Suma Resta Multiplicacin Divisin Resultado El opuesto de $a. Suma de $a y $b. Diferencia entre $a y $b. Producto de $a y $b. Cociente de $a y $b. Resto de $a dividido por $b. Cuidado: Los nmeros se convierten a enteros antes de efectuar el clculo. Por ejemplo, 5 % 2.5 da como resultado 1 y no 0 porque calcula el resto de 5 entre 2, no de 5 entre 2.5.
$a % $b
Mdulo
Operadores
Ejemplo
++$a $a++ --$a
Nombre
Pre-incremento Post-incremento Pre-decremento
Efecto
Incrementa $a en uno, y luego devuelve $a. Devuelve $a, y luego incrementa $a en uno. Decrementa $a en uno, luego devuelve $a.
$a--
Post-decremento
Devuelve $a, luego decrementa $a en uno.
Ejemplo
$a += $b $a -= $b $a *= $b
Nombre
Suma Resta Multiplicacin
Equivale a
$a = $a + $b $a = $a - $b $a = $a * $b
$a /= $b
$a %= $b
Divisin
Mdulo
$a = $a / $b
$a = $a % $b
Funciones
La funcin round(x) redondea el nmero x al entero ms prximo. <?php print "<p>2.6 se redondea con round a " . round(2.6) . "</p>\n"; print "<p>2.3 se redondea con round a " . round(2.3) . "</p>\n"; ?> <p>2.3 se redondea con round a 2</p> <p>2.6 se redondea con round a 3</p> La funcin round(x,n) redondea x con n decimales (si n es negativo redondea a decenas, centenas, etc.). <?php print "<p>2.6574 se redondea con round con dos decimales a " . round(2.6574, 2) . "</p>\n"; print "<p>3141592 redondeado con round con centenas es " . round(3141592, -2) . "</p>\n"; ?> <p>2.6574 se redondea con round con dos decimales a 2.66</p> <p>3141592 redondeado con round con centenas es 3141600</p>
Funciones La funcin floor(x) redondea el nmero x al entero inferior (es decir, devuelve la parte entera).
<?php print "<p>2.6 se redondea con floor a " . floor(2.6) . "</p>"; print "<p>2.3 se redondea con floor a " . floor(2.3) . "</p>\n"; print "<p>-2.6 se redondea con floor a " . floor(-2.6) . "</p>"; print "<p>-2.3 se redondea con floor a " . floor(-2.3) . "</p>\n"; ?> <p>2.6 se redondea con floor a 2</p><p>2.3 se redondea con floor a 2</p> <p>-2.6 se redondea con floor a -3</p><p>-2.3 se redondea con floor a -3</p> La funcin ceil(x) redondea el nmero x al entero superior. <?php print "<p>2.6 se redondea con ceil a " . ceil(2.6) . "</p>"; print "<p>2.3 se redondea con ceil a " . ceil(2.3) . "</p>\n"; print "<p>-2.6 se redondea con ceil a " . ceil(-2.6) . "</p>"; print "<p>-2.3 se redondea con ceil a " . ceil(-2.3) . "</p>\n"; ?> <p>2.6 se redondea con ceil a 3</p><p>2.3 se redondea con ceil a 3</p> <p>-2.6 se redondea con ceil a -2</p><p>-2.3 se redondea con ceil a -2</p>
La funcin pow(x, y) calcula x elevado a y.
Funciones
<?php print "<p>2<sup>3</sup> = " . pow(2, 3) . "</p>\n"; ?> <p>2 = 8</p> Las funciones max() y min() devuelven el mximo y el mnimo, respectivamente, de una lista o matriz de valores.. <?php print "<p>El mximo es " . max(20, 40, 25.1, 14.7) . "</p>\n"; ?> <p>El mximo es 40</p> <?php print "<p>El mnimo es " . min(20, 40, 25.1, 14.7) . "</p>\n"; ?> <p>El mnimo es 14.7</p> <?php $datos = array(20, 40, 25.1, 14.7); print "<p>El mnimo es " . min($datos) . "</p>\n"; ?> <p>El mnimo es 14.7</p>
Formatear
<?php print "<p>" . number_format(1300, 5) . "</p>\n"; ?> <p>1,300.00000</p> <?php print "<p>" . number_format(123456.789, 2) . "</p>\n"; ?> <p>123,456.79</p> <?php print "<p>" . number_format(123456789123, 0, ',', '.') . "</p>\n"; ?> <p>123.456.789.123</p> <?php print "<p>" . number_format(123456789123456.789, 2, ',', '.') . "</p>\n"; ?> <p>123.456.789.123.456,78</p>
Operadores logicos
Ejemplo $a == $b $a === $b $a != $b $a <> $b $a !== $b $a < $b $a > $b $a <= $b $a >= $b Nombre Igual Idntico Diferente No idnticos Menor que Mayor que Menor o igual que Mayor o igual que Resultado true si $a es igual a $b. true si $a es igual a $b, y son del mismo tipo. (a partir de PHP 4) true si $a no es igual a $b. true si $a no es igual a $b, o si no son del mismo tipo. (a partir de PHP 4) true si $a es estrictamente menor que $b. true si $a es estrictamente mayor que $b. true si $a es menor o igual que $b. true si $a es mayor o igual que $b.
Operaciones lgicas
Ejemplo $a && $b Nombre Y O Resultado true si los dos, $a y $b, son true. true si uno de los dos, $a o $b, es true. true si slo uno de los dos, $a o $b, es true, pero no ambos. true si $a no es true.
$a and $b
$a || $b $a or $b $a xor $b ! $a
O exclusivo (Xor) Negacin
Bloques de control
if (expresin_1) { bloque_de_sentencias_1 } elseif (expresin_2) { bloque_de_sentencias_2 } elseif (expresin_3) { bloque_de_sentencias_3 ... } elseif (expresin_n) { bloque_de_sentencias_n } else { bloque_de_sentencias_n+1 } $variable = (expresin_1)? expresion1 : expresion2; switch (expresin_1) { case valor_1: bloque_de_sentencias_1; break; case valor_2: bloque_de_sentencias_2; break; ... case valor_n: bloque_de_sentencias_n; break; }
Bloques de control
for (expresin_inicial; condicin_continuacin; expresin_paso) { bloque_de_sentencias } <?php for ($i = 0; $i < 5; $i++) { print "<p>$i</p>\n"; } ?> <p>0</p> <p>1</p> <p>2</p> <p>3</p> <p>4</p> while (expresin) { bloque_de_sentencias } <?php $i = 0; while ($i < 5) { print "<p>$i</p>\n"; $i++; } ?> <p>0</p> <p>1</p> <p>2</p> <p>3</p> <p>4</p>
Bloques de control
do { bloque_de_sentencias } while (expresin) <?php $i = 0; do { print "<p>$i</p>\n"; $i++; } while ($i < 5) ?> <p>0</p> <p>1</p> <p>2</p> <p>3</p> <p>4</p> foreach ($matriz as $valor) { bloque_de_sentencias } <?php $matriz = array(0, 1, 10, 100, 1000); foreach ($matriz as $valor) { print "<p>$valor</p>\n"; } ?> <p>0</p> <p>1</p> <p>10</p> <p>100</p> <p>1000</p>
Arreglo
<?php $valores = array (10, 40, 15, -1); $maximo = max($valores); $minimo = min($valores); print "<pre>"; print_r($valores); print "</pre>\n"; print "<p>El mximo de la matriz es $maximo.</p>\n"; print "<p>El mnimo de la matriz es $minimo.</p>\n"; ?> Array ( [0] => 10 [1] => 40 [2] => 15 [3] => -1 ) El mximo de la matriz es 40. El mnimo de la matriz es -1.
Arreglo
<?php $valores = array (10, 40, 15, -1);
print "<pre>"; print_r($valores); print "</pre>\n"; if (in_array(15, $valores)) { print "<p>15 est en la matriz \$valores.</p>\n"; } if (!in_array(25, $valores)) { print "<p>25 no est en la matriz \$valores.</p>\n"; } if (!in_array("15", $valores, true)) { print "<p>\"15\" no est en la matriz \$valores.</p>\n"; } ?>
Array ( [0] => 10 [1] => 40 [2] => 15 [3] => -1 ) 15 est en la matriz $valores. 25 no est en la matriz $valores. "15" no est en la matriz $valores.
Funciones
<?php // ESTA ES LA DEFINICIN DE LA FUNCIN calculaHipotenusa function calculaHipotenusa($arg1, $arg2) { $hipotenusa = sqrt($arg1 * $arg1 + $arg2 * $arg2); return $hipotenusa; } // ESTO ES UN EJEMPLO DE USO DE LA FUNCIN calculaHipotenusa $cateto1 = 12; $cateto2 = 16; $hipotenusa = calculaHipotenusa($cateto1, $cateto2); print "<p>El tringulo de lados $cateto1, $cateto2 y $hipotenusa es rectngulo.</p>\n"; ?>
biblioteca.php <?php function cabecera($titulo) { print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?"."> <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\"> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso8859-1\" /> <title>$titulo</title> <link href=\"estilo.css\" rel=\"stylesheet\" type=\"text/css\" /> </head> <?php include "biblioteca.php"; <body> cabecera("Pgina de ejemplo"); <h1>$titulo</h1>\n"; print "<p>Esta pgina es vlida</p>"; } ?> ?> </body> </html>
Bibliotecas
Base de datos
// FUNCIN DE CONEXIN CON LA BASE DE DATOS MYSQL function conectaDb() { try { $db = new PDO("mysql:host=localhost", "root", ""); $db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true); return($db); } catch (PDOException $e) { cabecera("Error grave"); print "<p>Error: No puede conectarse con la base de datos.</p>\n"; // print "<p>Error: " . $e->getMessage() . "</p>\n"; pie(); exit(); } } // EJEMPLO DE USO DE LA FUNCIN ANTERIOR // La conexin se debe realizar en cada pgina que acceda a la base de datos $db = conectaDB();
Base de datos
// FUNCIN DE CONEXIN CON LA BASE DE DATOS MYSQL O CON SQLITE
define ("MYSQL", "MySQL"); define ("SQLITE", "SQLite"); $dbMotor = SQLITE; // Base de datos empleada if ($dbMotor == MYSQL) { define("MYSQL_HOST", "mysql:host=localhost"); // Nombre de host MYSQL define("MYSQL_USUARIO", "root"); // Nombre de usuario de MySQL define("MYSQL_PASSWORD", ""); // Contrasea de usuario de MySQL $dbDb = "mclibre_baseDeDatos"; // Nombre de la base de datos $dbTabla = $dbDb . ".tabla"; // Nombre de la tabla } elseif ($dbMotor == SQLITE) { $dbDb = "/tmp/mclibre_baseDeDatos.sqlite"; // Nombre de la base de datos $dbTabla = "tabla"; // Nombre de la tabla }
function conectaDb() { global $dbMotor, $dbDb; try { if ($dbMotor == MYSQL) { $db = new PDO(MYSQL_HOST, MYSQL_USUARIO, MYSQL_PASSWORD); $db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true); } elseif ($dbMotor == SQLITE) { $db = new PDO("sqlite:" . $dbDb); } return($db); } catch (PDOException $e) { cabecera("Error grave"); print "<p>Error: No puede conectarse con la base de datos.</p>\n"; // print "<p>Error: " . $e->getMessage() . "</p>\n"; pie(); exit(); } } // EJEMPLO DE USO DE LA FUNCIN ANTERIOR // La conexin se debe realizar en cada pgina que acceda a la base de datos $db = conectaDB();
Base de datos
$db = null;
Insertar
// EJEMPLO DE CONSULTA DE INSERCIN DE REGISTRO $db = conectaDb(); $consulta = "INSERT INTO $dbTabla (nombre, apellidos) VALUES ("$nombre", "$apellidos")"; if ($db->query($consulta)) { print "<p>Registro creado correctamente.</p>\n"; } else { print "<p>Error al crear el registro.<p>\n"; } $db = null;
Select
// EJEMPLO DE CONSULTA DE SELECCIN DE REGISTRO$db = conectaDb(); $consulta = "SELECT * FROM $dbTabla"; $result = $db->query($consulta); if (!$result) { print "<p>Error en la consulta.</p>\n"; } else { foreach ($result as $valor) { print "<p>$valor[nombre] $valor[apellidos]</p>\n"; } $nombre = $_REQUEST["nombre"]; } $apellidos = $_REQUEST["apellidos"]; $consulta = "SELECT COUNT(*) FROM $dbTabla WHERE nombre=? AND apellidos=?"; $result = $db->prepare($consulta); $result->execute(array($nombre, $apellidos)); if (!$result) { print "<p>Error en la consulta.</p>\n";
Update
// EJEMPLO DE CONSULTA DE MODIFICACIN DE REGISTRO $db = conectaDb();
$nombre = recoge("nombre"); $apellidos = recoge("apellidos"); $id = recoge("id"); $consulta = "UPDATE $dbTabla SET nombre=:nombre, apellidos=:apellidos WHERE id=:id"; $result = $db->prepare($consulta); if ($result->execute(array(":nombre" => $nombre, ":apellidos" => $apellidos, ":id" => $id))) { print "<p>Registro modificado correctamente.</p>\n"; } else { print "<p>Error al modificar el registro.</p>\n"; } $db = null;
Delete
// EJEMPLO DE CONSULTA DE BORRADO DE REGISTRO $db = conectaDb();
$id = recogeMatriz("id");
foreach ($id as $indice => $valor) { $consulta = "DELETE FROM $dbTabla WHERE id=:indice"; $result = $db->prepare($consulta); if ($result->execute(array(":indice" => $indice))) { print "<p>Registro borrado correctamente.</p>\n"; } else { print "<p>Error al borrar el registro.</p>\n"; } } $db = null;
<?php $db = odbc_connect('db1',"",""); if (!$db) { exit('Error en la conexin a la base de datos'); } else { $consulta = "SELECT * FROM gente"; $result = odbc_exec($db,$consulta); if (!$result) { exit("Error en la consulta"); } else { print "<table border=\"1\">\n <tr> <th>Nombre</th>\n <th>Apellidos</th>\n </tr>\n"; while ($valor = odbc_fetch_array($result)) { $nombre = $valor['nombre']; $apellidos = $valor['apellidos']; print " <tr>\n <td>$nombre</td>\n <td>$apellidos</td>\n </tr>\n"; } odbc_close($db); print "</table>\n"; } } ?>
ODBC