php y MySQL
Introducción a PHP
Lenguajes de script
• PHP es un lenguaje de script del lado del servidor.
Otros lenguajes similares son ASP, JSP o
ColdFusion.
• Los scripts PHP están incrustados en los
documentos HTML y el servidor los interpreta y
ejecuta antes de servir las páginas al cliente.
• El cliente no ve el código PHP sino los resultados
que produce.
Introducción a PHP
¿Cómo funciona PHP? (1)
Servidor web Cliente
(navegador)
Página Página
HTML HTML
internet
<P>Hola, Ana</P>
Introducción a PHP
¿Cómo funciona PHP? (2)
Servidor web Cliente
(navegador)
Página Página Página
PHP HTML HTML
internet
Intérprete
PHP
<?PHP
$nombre = "Ana";
print ("<P>Hola, $nombre</P>");
?>
<P>Hola, Ana</P>
Introducción a PHP
Breve historia de PHP
• Creado por Rasmus Lerdorf para uso personal en
1994.
• PHP = Personal Hypertext Processor.
• Versión actual: PHP 7.
• Es un módulo que se añade al servidor web y fue
concebido inicialmente para Apache.
¿Por qué PHP?
• Por sus ventajas: es potente, fácil de aprender, de
libre distribución, permite el acceso a bases de
datos y otras funcionalidades orientadas a la red.
• Dispone de abundante soporte en la Web.
Introducción a PHP
Requisitos:
• Servidor web Apache ([Link]).
• módulo PHP ([Link]).
• base de datos MySQL ([Link]) si se desea crear
páginas dinámicas.
Otras utilidades
• Herramientas para la gestión de MySQL, como PHPMyAdmin
([Link]).
• Editores de PHP, como DevPHP ([Link]),
Eclipse ([Link]), Sublime Text, phpStorm (https://
[Link]/phpstorm), Visual Studio Code (https://
[Link]), Brackets, Netbeans.
• Manuales de PHP y MySQL.
Sintaxis básica
PHP es sensible a las mayúsculas.
¿Cómo se incrusta en la página web?
<?php ... ?>
Las instrucciones se separan con un ; como en C.
La marca final ?> implica un ;
Comentarios como en C:
• En bloque: /* … */
• De una línea : //
Sintaxis básica
Para imprimir: echo y print
echo: muestra una o más cadenas
echo cadena1 [, cadena2…]; // no es una función
echo “Hola mundo”;
echo “Hola “, “mundo”;
print: muestra una cadena
print cadena; // no es una función
print “Hola mundo”;
print “Hola “ . “mundo”;
Sintaxis básica
Ejemplo:
<HTML>
<HEAD>
<TITLE>Mi primer programa en PHP</TITLE>
</HEAD>
<BODY>
<?php
echo“<P>Hola mundo</P>”;
?>
</BODY>
</HTML>
Sintaxis básica
Inclusión de ficheros externos:
Función Descripción
include() Incluye y evalúa el archivo especificado.
require() Incluye y evalúa el archivo especificado.
include_once() verifica si el archivo ya ha sido incluido y si es así, no se incluye
(include) de nuevo.
require_once() verifica si el archivo ya ha sido incluido y si es así, no se incluye
(require) de nuevo.
Diferencia: en caso de error include() produce un
warning y require() un error fatal.
Se usará require() si al producirse un error debe
interrumpirse la carga de la página
Ejemplo:
Sintaxis básica
<HTML>
<HEAD>
<TITLE>Título</TITLE>
<?php
// Incluir bibliotecas de funciones
require ("[Link]");
require ("[Link]");
require ("[Link]");
require ("[Link]");
?>
</HEAD>
<BODY>
<?php
include ("[Link]");
?>
// Código HTML + PHP
. . .
<?php
include ("[Link]");
?>
</BODY>
</HTML>
Tipos de datos
PHP soporta 8 tipos de datos primitivos:
• Tipos escalares: boolean, integer, double, string
• Tipos compuestos: array, object
• Tipos especiales: resource, NULL
El tipo de una variable no se suele especificar. Se decide en
tiempo de ejecución en función del contexto y puede variar.
Funciones de interés:
• La función gettype() devuelve el tipo de una variable.
• Las funciones is_type comprueban si una variable es de un tipo
dado:
is_array(), is_bool(), is_float(), is_integer(), is_null(),
is_numeric(), is_object(), is_resource(), is_scalar(),
is_string()
• La función var_dump() muestra el tipo y el valor de una
variable. Es especialmente interesante con los arrays.
Tipos de datos
Tipo integer (números enteros)
• 27, -5, 0
Tipo double (números reales)
• 1.234, -5.33
Tipo boolean (lógico)
• Valores: true, false (insensibles a las mayúsculas).
• El 0 y la cadena vacía tienen valor false.
Tipos de datos
Tipo string:
• Las cadenas se encierran entre comillas simples o dobles:
o ‘simples’: admite los caracteres de escape \’ (comilla simple) y \\
(barra). Las variables NO se expanden.
o “dobles”: admite más caracteres de escape, como \n, \r, \t, \\, \
$, \”. Los nombres de variables SÍ se expanden.
o Ejemplos:
$a = 9;
echo ‘a vale $a\n’;
// muestra a vale $a\n
echo “a vale $a\n”;
// muestra a vale 9 y avanza una línea
echo “<IMG SRC=‘[Link]’>”;
// muestra <IMG SRC=‘[Link]’>
echo “<IMG SRC=\”[Link]\”>”;
// muestra <IMG SRC=“[Link]”>
• Acceso a un carácter de la cadena:
o La forma es $inicial = $nombre{0};
Variables
Las variables siempre van precedidas de un $.
El nombre es sensible a las mayúsculas.
Comienzan por letra o subrayado, seguido de letras, números o
subrayado.
Variables predefinidas:
$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES,
$_ENV, $_REQUEST, $_SESSION
Ámbito: globales al fichero (excepto funciones) o locales a una
función.
Ejemplo:
$valor = 5;
echo “El valor es: " . $valor . “<br>”;
echo “El valor es: $valor<br>”; // ojo: comillas dobles
Resultado:
El valor es: 5
Constantes
Definición de constantes:
define (“CONSTANTE”, “hola”);
print CONSTANTE;
No llevan $ delante.
Sólo se pueden definir constantes de los tipos
escalares (boolean, integer, double, string).
Expresiones y operadores
Operadores aritméticos:
+, -, *, /, %, ++, --
Operador de asignación:
=
operadores combinados: .=, +=, etc
$a = 3; $a += 5; a vale 8
$b = “hola ”; $b .= “mundo”; b vale “hola mundo”
Equivale a $b = $b . “mundo”;
Operadores de comparación:
==, !=, <, >, <=, >= y otros
Operador de control de error: @. Antepuesto a una expresión, evita
cualquier mensaje de error que pueda ser generado por la expresión
Operadores lógicos:
and (&&), or (||), !, xor
and/&& y or/|| tienen diferentes prioridades
Operadores de cadena:
concatenación: . (punto)
asignación con concatenación: .=
Expresiones y operadores
Precedencia de operadores (de mayor a menor):
++, --
*, /, %
+,-
<, <=, >, >=
==, !=
&&
||
and
or
Estructuras de control
Estructuras selectivas:
• if-else
• switch
Estructuras repetitivas:
• while
• for
• foreach
Estructuras de control
Estructura selectiva if-else
if (condición) if (condición1)
sentencia sentencia 1
elseif (condición2)
sentencia 2
if (condición)
...
sentencia 1
elseif (condición n)
else
sentencia n
sentencia 2
else
sentencia n+1
Mismo comportamiento que en C
Las sentencias compuestas se encierran entre llaves
elseif puede ir todo junto
Estructuras de control
Ejemplo de estructura selectiva if-else:
<?php
$nombre = ‘Ana’;
$sexo = ‘M’;
if ($sexo == ‘M’)
$saludo = "Bienvenida, ";
else
$saludo = "Bienvenido, ";
$saludo = $saludo . $nombre;
echo $saludo;
?>
Estructuras de control
Estructura selectiva switch
switch (expresión)
{
case valor_1:
sentencia 1
break;
case valor_2:
sentencia 2
break;
…
case valor_n:
sentencia n
break;
default
sentencia n+1
}
Mismo comportamiento que en C, sólo que la expresión del
case puede ser integer, float o string.
Estructuras de control
Ejemplo de estructura selectiva switch:
$extension = ‘HTML’;
switch ($extension)
{
case "PDF":
$tipo = "Documento Adobe PDF";
break;
case "TXT":
$tipo = "Documento de texto";
break;
case "HTML":
$tipo = "Documento HTML";
break;
default:
$tipo = "Archivo " . $extension;
}
echo $tipo;
Estructuras de control
Estructura repetitiva while
while (condición)
sentencia
Mismo comportamiento que en C
Estructuras de control
Ejemplo de estructura repetitiva while:
<?php
echo "<ul><br>";
$i=1;
while ($i <= 5)
{
echo "<li>Elemento $i</li><br>";
$i++;
}
echo "</ul><br>";
?>
Estructuras de control
Estructura repetitiva for
for(inicialización; condición; incremento)
sentencia
Mismo comportamiento que en C.
Estructuras de control
Ejemplo de estructura repetitiva for:
<?php
echo "<ul><br>";
for ($i=1; $i<=5; $i++)
echo"<li>Elemento $i</li><br>";
echo "</ul><br>";
?>
Funciones
Las funciones son básicamente pedazos de código que pueden
ser llamados desde un script para realizar una tarea especifica.
A las funciones se les pueden pasar argumentos o parámetros
de ser necesario para que utilicen sus valores para realizar
alguna operación y retorna algún valor al final de la ejecución.
En PHP existen dos tipos de funciones, las que PHP trae por
defecto para que el programador las utilice y las que el
programador crea desde cero dependiendo de sus necesidades.
function nombre_funcion(){
instrucciones
}
Funciones
Ejemplo:
function suma ($x, $y)
{
$s = $x + $y;
return $s;
}
$a=1;
$b=2;
$c=suma ($a, $b);
echo $c;
Funciones
Por defecto los parámetros se pasan por valor
Paso por referencia:
function incrementa (&$a)
{
$a = $a + 1;
}
$a=1;
incrementa ($a);
echo $a; // Muestra un 2
Funciones
Argumentos por defecto
function muestranombre($titulo = "Sr.")
{
echo "Estimado $titulo: <br>";
}
muestranombre();
muestranombre("Prof.");
Salida:
Estimado Sr.:
Estimado Prof.:
Funciones
Los argumentos con valores por defecto deben ser
siempre los últimos:
function muestranombre($nombre, $titulo= "Sr.")
{
echo "Estimado $titulo $nombre: <br>";
}
muestranombre(“Fernández”);
muestranombre(“Fernández”, "Prof.");
Salida:
Estimado Sr. Fernández:
Estimado Prof. Fernández:
Tablas
Sintaxis:
array ([clave =>] valor, ...)
La clave es una cadena o un entero no negativo. El
valor puede ser de cualquier tipo válido en PHP,
incluyendo otro array.
Ejemplos:
$color = array (‘rojo’=>101, ‘verde’=>51, ‘azul’=>255);
$medidas = array (10, 25, 15);
Acceso:
$color[‘rojo’] // No olvidar las comillas
$medidas[0]
El primer elemento es el 0.
Tablas
La estructura de control foreach permite iterar sobre arrays.
Sintaxis:
foreach (expresión_array as $valor)
sentencia
foreach (expresión_array as $clave => $valor)
sentencia
Ejemplos:
foreach ($color as $valor)
echo “Valor: $valor<br>”;
foreach ($color as $clave => $valor)
echo “Clave: $clave; Valor: $valor<br>”;
Salida:
Valor: 101
Valor: 51
Valor: 255
Clave: rojo; Valor: 101
Clave: verde; Valor: 51
Clave: azul; Valor: 255
Bibliotecas de funciones
Existen muchas bibliotecas de funciones en PHP.
Algunos ejemplos:
Funciones de manipulación de cadenas
Funciones de fecha y hora
Funciones de arrays
Funciones de ficheros
Funciones matemáticas
Funciones de bases de datos
Funciones de red
Algunas bibliotecas requieren la instalación de
componentes adicionales.
Todas las funciones de biblioteca están
comentadas en la documentación de PHP.
Bibliotecas de funciones
Funciones de manipulación de cadenas
• explode()
Divide una cadena en subcadenas.
array explode (string separator, string string [, int limit])
• rtrim(), ltrim(), trim()
Eliminan caracteres a la derecha, a la izquierda o por ambos lados
de una cadena.
string rtrim ( string str [, string charlist])
• strstr()
Busca la primera ocurrencia de una subcadena.
• strtolower() / strtoupper()
Convierte una cadena a minúscula / mayúscula.
• strcmp() / strcasecmp()
Compara dos cadenas con/sin distinción de mayúsculas.
• strlen()
Calcula la longitud de una cadena.
Bibliotecas de funciones
Funciones de fecha y hora
• date()
Formatea una fecha según un formato dado.
Ejemplo:
$fecha = date ("j/n/Y H:i");
echo "$fecha";
Resultado:
26/9/2005 17:36
• strtotime()
Convierte una fecha en un timestamp de UNIX.
Ejemplo:
$fecha = date ("j/n/Y", strtotime(“5 april
2001"));
echo "$fecha";
Resultado:
5/4/2001
Bibliotecas de funciones
Funciones de arrays
• array_count_values()
Calcula la frecuencia de cada uno de los
elementos de un array.
• array_search()
Busca un elemento en un array.
• count()
Cuenta los elementos de un array.
• sort(), rsort()
Ordena y reindexa un array (r=decreciente).
• ksort(), krsort()
Ordena por claves un array (r=decreciente).
Formularios
Otra de las características más potentes de PHP es la forma de
gestionar formularios HTML. El concepto básico que es
importante entender es que cualquier elemento de un
formulario estará disponible automáticamente en sus scripts de
PHP.
Las superglobals $_GET y $_POST sirven para coleccionar datos
de formularios.
Formularios
$_GET es un array de variables que se pasan al script a través
de los parámetros de URL. La información que se envía es
visible para todo el mundo y tiene limitada la cantidad de
información que se puede enviar a 2000 caracteres. Las URLs
con los datos enviados pueden guardarse en marcadores, lo
que puede ser útil en ciertos casos. $_GET sólo se emplea para
el envío de información reducida y no sensible.
$_POST es un array de variables que se pasan al script a través
del método HTTP POST. La información que se envía no es
visible para los demás ya que los nombres y variables van
embebidas en el body del HTTP request. No tiene límites en la
cantidad de información a enviar. Soporta datos de entrada
multi-part binary a la hora se subir archivos al servidor (lo que
permite subir múltiples archivos a la vez).
Formularios
Ejemplo:
<html>
<body>
<form action="[Link]" method="post">
Nombre: <input type="text" name="nombre"><br>
Email: <input type="text" name="email"><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>
[Link]:
<html>
<body>
Hola <?php echo $_POST["nombre"]; ?><br>
Tu email es: <?php echo $_POST["email"]; ?>
</body>
</html>
Formularios
Ejemplo:
<html>
<body>
<form action="[Link]" method="get">
Nombre: <input type="text" name="nombre"><br>
Email: <input type="text" name="email"><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>
[Link]:
<html>
<body>
Hola <?php echo $_GET["nombre"]; ?><br>
Tu email es: <?php echo $_GET["email"]; ?>
</body>
</html>
Formularios
Los 10 tipos de elementos más importantes para los formularios
HTML con PHP son:
Elemento Descripción
input type="text" Caja de texto.
input type="password" Caja de texto donde se muestran asteriscos
en lugar de los caracteres escritos.
input type="checkbox" Cajas seleccionables que permite escoger
múltiples opciones.
input type="radio" Cajas seleccionables en grupos que sólo
permiten escoger una opción.
input type="submit" Botón para enviar el formulario.
input type="file" Cajas de texto y botón que permite subir
archivos.
input type="hidden" Elemento escondido. Especialmente útil para
tokens de seguridad.
option Una opción posible dentro de un elemento
element.
select Lista de opciones de elementos option.
textarea Texto multilínea.
MySQL
Numéricos
TIPO ESPACIO RANGO (-) RANGO (-) Rango sin
MIN MAX. signo
BIT 1 byte 0-1
TINYINT 1 byte -128 127 255
SMALLINT 2 bytes -32768 32.767 65.535
MEDIUMINT 3 bytes -8.388.608 8.388.607 16.777.215
INT 4 bytes -[Link] [Link] [Link]
-
922337203685477 184467440737095
BIGINT 8 bytes 9223372036854775
5808 51615
808
- 1,175494351E- 1,175494351E-
FLOAT (m,d) 4 bytes
3,402823466E+38 38 38
-
2,.22507385850720 1.79769313486231
DOUBLE 8 bytes 1,797693134862315
14E-308 57E+308
7E+308
Su uso es similar al de los anteriores, pero, en este caso, D puede tener
DECIMAL (m,d)
valor 0.
MySQL
Cadenas de Carateres
TIPO ESPACIO Longitud Observación
Ocupa siempre el
máximo de la
CHAR 1 bytes por caracter 1 ... 255 longitud.
Es más rápido que
VARCHAR
Optimiza el espacio
1 bytes por caracter utilizado.
VARCHAR 1 … 255
+ 1 ó 2 bytes adic. Almacena sólo la
longitud del dato.
TINYTEX Longitud + 1 bytes 1 … 255
1 … 65.535
Contiene una cantidad
TEXT Longitud + 2 bytes variable de datos.
MEDIUMTEXT Longitud + 3 bytes 1 … 16.777.215
Sirve para almacenar
LONGTEXT Longitud + 4 bytes … [Link] texto (gran cantidad)
Contiene un único valor
ENUM 1 ó 2 bytes (valor1, valor2, … 65.535)
de la lista que se especifica
Puede contener ninguno,
SET 1 … 8 bytes (valor1, valor2, … 64) uno o varios valores de una
lista.
MySQL
Fecha - Hora
TIPO ESPACIO Formato Observación
DATE 3 bytes YYYY-MM-DD
YYYY-MM-DD
DATETIME 8 bytes
HH:MM:SS
Ocupa la mitad (4
bytes) que Datetime
TIMESTAMP 4 bytes AAAAMMDDHHMMSS Puede almacenar fecha
y hora por defecto del
servidor.
TIME 3 bytes HH:MM:SS
(4digitos) del 1901 a 2155 Se puede usar de
YEAR 1 bytes
(2digitos) 70 a 69 dos o cuatros dígitos
MySQL
File (Archivos)
TIPO ESPACIO Formato Observación
hasta un máximo de 255
TINYBLOB Longitud + 1bytes
bytes
hasta un máximo de
BLOB Longitud + 2bytes
65.535 bytes
Permite almacenar
Ficheros
de cualquier tipo hasta un máximo de
MEDIUMBLOB Longitud + 3bytes
16.777.215 bytes
hasta un máximo de
LONGBLOB Longitud + 4bytes
[Link] bytes
Funciones para conectarse a
MySQL
Función Descripción
mysqli_connect(host, Abre una conexión al servidor
`usuariodb`,`pasword`,`bd`); MySQL.
mysqli_select_db($link, Selecciona la base de datos por
$baseDeDatos); defecto para realizar las consultas.
mysqli_query($link, $query); Realiza una consulta a la base de
datos.
mysqli_fetch_array($result) Obtiene una fila de resultados como
un array asociativo, numérico, o
ambos.
mysqli_fetch_assoc($result) Obtiene una fila de resultado como
un array asociativo.
mysqli_free_result($result); Libera la memoria asociada a un
resultado.
mysqli_close($link); Cierra una conexión previamente
abierta a una base de datos.
Consultar datos en MySQL con php
<html>
<head>
<title>Ejemplo de selección de datos en base de datos MySQL</title>
</head>
<body>
<?php
// Dirección o IP del servidor MySQL
$host = "localhost";
// Puerto del servidor MySQL
$puerto = "3306";
// Nombre de usuario del servidor MySQL
$usuario = "root";
// Contraseña del usuario
$contrasena = "";
// Nombre de la base de datos
$baseDeDatos ="tutorialphp5";
// Nombre de la tabla a trabajar
$tabla = "personas";
Consultar datos en MySQL con php
function Conectarse(){
global $host, $puerto, $usuario, $contrasena, $baseDeDatos, $tabla;
if (!($link = mysqli_connect($host.":".$puerto, $usuario, $contrasena))) {
echo "Error conectando a la base de datos.<br>";
exit();
} else{
echo "Listo, estamos conectados.<br>";
if (!mysqli_select_db($link, $baseDeDatos)) {
echo "Error seleccionando la base de datos.<br>";
exit();
}else{
echo "Obtuvimos la base de datos $baseDeDatos sin problema.<br>";
return $link;
}
Consultar datos en MySQL con php
$link = Conectarse();
$query = "SELECT Nombre, Apellidos FROM $tabla;";
$result = mysqli_query($link, $query);
?>
<table>
<tr>
<td>Nombre</td>
<td>Apellidos</td>
<tr>
<?php
while($row = mysqli_fetch_array($result)) {
echo"<tr><td>%s</td><td>%s</td></tr>",$row["Nombre"],$row["Apellidos"];
}
mysqli_free_result($result);
mysqli_close($link);
?>
</table>
</body>
</html>
Insertar datos en MySQL con php
<html>
<head>
<title>Ejemplo de ingreso de datos en base de datos MySQL</title>
</head>
<body>
<?php
// Dirección o IP del servidor MySQL
$host = "localhost";
// Puerto del servidor MySQL
$puerto = "3306";
// Nombre de usuario del servidor MySQL
$usuario = "root";
// Contraseña del usuario
$contrasena = "";
// Nombre de la base de datos
$baseDeDatos ="tutorialphp5";
// Nombre de la tabla a trabajar
$tabla = "personas";
Insertar datos en MySQL con php
function Conectarse() {
global $host, $puerto, $usuario, $contrasena, $baseDeDatos, $tabla;
if (!($link = mysqli_connect($host.":".$puerto, $usuario, $contrasena))){
echo "Error conectando a la base de datos.<br>";
exit();
}else{
echo "Listo, estamos conectados.<br>";
}
if (!mysqli_select_db($link, $baseDeDatos)){
echo "Error seleccionando la base de datos.<br>";
exit();
}else{
echo "Obtuvimos la base de datos $baseDeDatos sin problema.<br>";
}
return $link;
}
Insertar datos en MySQL con php
$link = Conectarse();
if($_POST) {
$queryInsert = "INSERT INTO $tabla (Nombre, Apellidos) VALUES('".
$_POST['nombreForm']."', '".$_POST['apellidoForm']."');";
$resultInsert = mysqli_query($link, $queryInsert);
if($resultInsert) {
echo "<strong>Se ingresaron los registros con exito</strong>. <br>";
}else{
echo "No se ingresaron los registros. <br>";
$query = "SELECT Nombre, Apellidos FROM $tabla;";
$result = mysqli_query($link, $query);
?>
Insertar datos en MySQL con php
<?php
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>";
echo $row["Nombre"];
echo "</td>";
echo "<td>";
echo $row["Apellidos"];
echo "</td>";
echo "</tr>";
}
Insertar datos en MySQL con php
mysqli_free_result($result);
mysqli_close($link);
?>
</table>
<hr>
<form action="" method="post">
Nombre: <input type="text" name="nombreForm"> <br> <br>
Apellidos: <input type="text" name="apellidoForm"> <br> <br>
<input type="submit" value="Guardar">
</form>
</body>
</html>
Actualizar datos en MySQL con php
<html>
<head>
<title>Ejemplo de actualización de datos en base de datos MySQL</title>
</head>
<body>
<?php
// Dirección o IP del servidor MySQL
$host = "localhost";
// Puerto del servidor MySQL
$puerto = "3306";
// Nombre de usuario del servidor MySQL
$usuario = "root";
// Contraseña del usuario
$contrasena = "";
// Nombre de la base de datos
$baseDeDatos ="tutorialphp5";
// Nombre de la tabla a trabajar
$tabla = "personas";
Actualizar datos en MySQL con php
function Conectarse() {
global $host, $puerto, $usuario, $contrasena, $baseDeDatos, $tabla;
if (!($link = mysqli_connect($host.":".$puerto, $usuario, $contrasena))) {
echo "Error conectando a la base de datos.<br>";
exit();
} else{
echo "Listo, estamos conectados.<br>";
}
if (!mysqli_select_db($link, $baseDeDatos)) {
echo "Error seleccionando la base de datos.<br>";
exit();
}else{
echo "Obtuvimos la base de datos $baseDeDatos sin problema.<br>";
}
return $link;
}
Actualizar datos en MySQL con php
$link = Conectarse();
if($_POST){
$queryUpdate = "UPDATE $tabla SET Nombre = '".$_POST['nombreForm']."',
Apellidos = '".$_POST['apellidoForm']."'
WHERE ID = ".$_POST['idForm'].";";
$resultUpdate = mysqli_query($link, $queryUpdate);
if($resultUpdate){
echo "<strong>El registro ID ".$_POST['idForm']." con exito</strong>. <br>";
} else{
echo "No se pudo actualizar el registro. <br>";
$query = "SELECT ID, Nombre, Apellidos FROM $tabla;";
$result = mysqli_query($link, $query);
?>
Actualizar datos en MySQL con php
<table>
<tr>
<td>Nombre</td>
<td>Apellidos</td>
<tr>
<?php
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>";
echo $row["Nombre"];
echo "</td>";
echo "<td>";
echo $row["Apellidos"];
echo "</td>";
echo "<td>";
echo "<a href=\"?id=".$row["ID"]."\">Actualizar</a>";
echo "</td>";
echo "</tr>";
}
mysqli_free_result($result);
?>
Actualizar datos en MySQL con php
</table>
<hr>
<?php
if($_GET) {
$querySelectByID = "SELECT ID, Nombre, Apellidos FROM $tabla WHERE ID = ".$_GET['id'].";";
$resultSelectByID = mysqli_query($link, $querySelectByID);
$rowSelectByID = mysqli_fetch_array($resultSelectByID);
?>
<form action="" method="post">
<input type="hidden" value="<?=$rowSelectByID['ID'];?>" name="idForm">
Nombre: <input type="text" name="nombreForm" value="<?=$rowSelectByID['Nombre'];?>"> <br> <br>
Apellidos: <input type="text" name="apellidoForm" value="<?=$rowSelectByID['Apellidos'];?>"> <br> <br>
<input type="submit" value="Guardar">
</form>
<?php
mysqli_close($link);
?>
</body>
</html>
Borrar datos en MySQL con php
<html>
<head>
<title>Ejemplo de borrado de datos en base de datos MySQL</title>
</head>
<body>
<?php
// Dirección o IP del servidor MySQL
$host = "localhost";
// Puerto del servidor MySQL
$puerto = "3306";
// Nombre de usuario del servidor MySQL
$usuario = "root";
// Contraseña del usuario
$contrasena = "";
// Nombre de la base de datos
$baseDeDatos ="tutorialphp5";
// Nombre de la tabla a trabajar
$tabla = "personas";
Borrar datos en MySQL con php
function Conectarse(){
global $host, $puerto, $usuario, $contrasena, $baseDeDatos, $tabla;
if (!($link = mysqli_connect($host.":".$puerto, $usuario, $contrasena))) {
echo "Error conectando a la base de datos.<br>";
exit();
}else{
echo "Listo, estamos conectados.<br>";
if (!mysqli_select_db($link, $baseDeDatos)){
echo "Error seleccionando la base de datos.<br>";
exit();
}else{
echo "Obtuvimos la base de datos $baseDeDatos sin problema.<br>";
return $link;
}
Borrar datos en MySQL con php
$link = Conectarse();
if($_GET){
$queryDelete = "DELETE FROM $tabla WHERE ID = ".$_GET['id'].";";
$resultDelete = mysqli_query($link, $queryDelete);
if($resultDelete){
echo "<strong>El registro se ha eliminado con exito</strong>.<br>";
}else{
echo "Hubo un problema borrando el registro.";
}
}
$query = "SELECT ID, Nombre, Apellidos FROM $tabla;";
$result = mysqli_query($link, $query);
?>
Borrar datos en MySQL con php
<table>
<tr>
<td>Nombre</td>
<td>Apellidos</td>
<tr>
<?php
while($row = mysqli_fetch_array($result)){
echo "<tr>";
echo "<td>";
echo $row["Nombre"];
echo "</td>";
echo "<td>";
echo $row["Apellidos"];
echo "</td>";
Borrar datos en MySQL con php
echo "<td>";
echo "<a href=\"?id=".$row["ID"]."\">Borrrar</a>";
echo "</td>";
echo "</tr>";
mysqli_free_result($result);
mysqli_close($link);
?>
</table>
<hr>
</body>
</html>
Sesiones
Las sesiones permiten mantener y manejar información de
los usuarios en el servidor mediante el array $_SESSION
$_SESSION es un array especial utilizado para guardar
información a través de los requests que un usuario hace
durante su visita a un sitio web o aplicación. La información
guardada en una sesión puede llamarse en cualquier
momento mientras la sesión esté abierta.
A cada usuario que accede a la aplicación e inicia sesión se
le asigna un session ID único, y es lo que le permite
identificar la sesión y que esté disponible para ese usuario
en concreto. La forma más segura de manejar sesiones es
almacenando en el cliente sólo esta session ID, y cualquier
información de la sesión guardarla en el lado del servidor.
Sesiones
Función Descripción
session_start(); Iniciar una nueva sesión o
reanudar la existente.
session_unset(); Libera todas las variables de
sesión.
session_destroy(); Destruye toda la información
registrada de una sesión.
session_status(); Devuelve el estado de la sesión
actual.
Sesiones
Ejemplo:
[Link]
// Comiendo de la sesión
session_start();
// Guardar datos de sesión
$_SESSION["usuario"] = "Peter";
echo "Sesión iniciada y establecido nombre de usuario!" . "<br>";
?>
<a href="[Link]">Segundo!</a>
[Link]
// Continuamos la sesión
session_start();
// Devolver los valores de sesión
echo "Nombre de usuario: " . $_SESSION["usuario"];
Sesiones
Cerrar una sesión
Tan importante es iniciar una sesión como cerrarla. Incluso cuando realmente una sesión es sólo una
forma temporal de almacenar datos, es importante limpiarla después para asegurar la máxima seguridad
especialmente cuando se trata con información personal.
Para eliminar un valor de sesión simplemente se utiliza unset():
session_start();
// Eliminar el nombre de usuario:
unset($_SESSION["usuario"]);
Para desvincular todos los valores de sesión de vez se puede emplear _sessionunset():
session_start();
// Eliminar todas las sesiones:
session_unset();
Ambas acciones anteriores sólo afectan a los valores guardados en la sesión, no a la propia sesión.
Todavía se pueden guardar nuevos valores en $_SESSION. Si se quiere dejar de utilizar por completo la
sesión, por ejemplo cuando el usuario hace log out, se utiliza _sessiondestroy():
session_start();
// Terminar la sesión:
session_destroy();
POO en php
Clase: es una plantilla o molde desde donde es posible generar
objetos (instancias). La estructura de una clase contiene dos
elementos básicos: variables y funciones. La definición de una
clase se delimita al iniciar una línea con la palabra class:
class nombreClase{
public $nombreVariable;
function nombrefuncion(){
return $this->nombreVariable;
$this: es una variable reservada especial que contiene el
objeto actual y se utiliza dentro del ámbito de una función
definida dentro de una clase.
POO en php
Tipos de acceso a variables y funciones.
Tanto las variables (que dentro del ámbito de una clase se
denominan propiedades) como las funciones (que dentro del
ámbito de una clase se denominan métodos) admiten los
llamados modificadores de acceso:
Modificador Descripción
public La propiedad o método es accesible desde cualquier
ámbito, incluyendo a otras clases.
private La propiedad o método solo es accesible dentro de la
clase a la que pertenece.
protected La propiedad o método solo es accesible dentro de la
clase a la que pertenece o desde cualquier clase que
derive de ella.
POO en php
Ejemplo:
<?php
class nombreClase{
public $variableA;
protected $variableB;
private $variableC;
public function obtenerValor($v){
if($v == ‘A’)
return $this->variableA;
else
return ‘Valor no disponible.’;
}
}
$c = new nombreClase();
echo $c->obtenerValor(‘A’);
?>
El operador new permite crear una instancia de una clase.
POO en php
Constructores: Un constructor es un método de clase
especial que se ejecuta automáticamente al instanciar un
objeto.
Se puede definir un constructor definiendo el método
__construct.
Encapsulación: La encapsulación es un aspecto importante
de la POO que te permite restringir el acceso a ciertas
propiedades o métodos del objeto.
POO en php
Herencia: La herencia es un aspecto importante del
paradigma de la programación orientada a objetos, que
permite heredar propiedades y métodos de otras clases
extendiéndolas. La clase que está siendo heredada se conoce
como clase padre, y la clase que hereda se conoce como clase
hija.
POO en php
Ejemplo:
<?php
class Person{
protected $name;
protected $age;
public function getName() {
return $this->name;
public function setName($name){
$this->name = $name;
private function callToPrivateNameAndAge(){
return "{$this->name} is {$this->age} years old.";
protected function callToProtectedNameAndAge(){
return "{$this->name} is {$this->age} years old.";
}
POO en php
Ejemplo (cont.):
class Employee extends Person{
private $designation;
private $salary;
public function getAge() {
return $this->age;
public function setAge($age) {
$this->age = $age;
public function getDesignation() {
return $this->designation;
}
POO en php
Ejemplo (Cont.):
public function setDesignation($designation) {
$this->designation = $designation;
public function getSalary() {
return $this->salary;
public function setSalary($salary) {
$this->salary = $salary;
public function getNameAndAge(){
return $this->callToProtectedNameAndAge();
}
POO en php
Ejemplo (Cont.):
employee = new Employee();
$employee->setName('Bob Smith');
$employee->setAge(30);
$employee->setDesignation('Software Engineer');
$employee->setSalary('30K');
echo $employee->getName(); // prints 'Bob Smith'
echo $employee->getAge(); // prints '30'
echo $employee->getDesignation(); // prints 'Software Engineer'
echo $employee->getSalary(); // prints '30K'
echo $employee->getNameAndAge(); // prints 'Bob Smith is 30 years old.'
echo $employee->callToPrivateNameAndAge(); // produces 'Fatal Error'
?>
POO en php
Polimorfismo: El polimorfismo es otro concepto importante en el mundo de
la programación orientada a objetos, que se refiere a la habilidad para
procesar objetos de manera diferente en base a sus tipos de datos.
Ejemplo:
<?php
class Message{
public function formatMessage($message){
return printf("<i>%s</i>", $message);
}
}
class BoldMessage extends Message{
//sobreescritura del metodo formatMessage
public function formatMessage($message){
return printf("<b>%s</b>", $message);
}
}
$message = new Message();
$message->formatMessage('Hello World'); // prints '<i>Hello World</i>'
$message = new BoldMessage();
$message->formatMessage('Hello World'); // prints '<b>Hello World</b>'
?>
Recursos de PHP
Documentación.
Manuales en:
[Link]
[Link]
[Link]
[Link]