PHP y MySQL
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)
Página Página
HTML HTML
internet
<P>Hola, Ana</P>
Introducción a PHP
¿Cómo funciona PHP? (2)
<?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 (www.apache.org).
• módulo PHP (www.php.net).
• base de datos MySQL (www.mysql.com) si se desea crear
páginas dinámicas.
Otras utilidades
• Herramientas para la gestión de MySQL, como PHPMyAdmin
(www.phpmyadmin.net).
• Editores de PHP, como DevPHP (www.sourceforge.net),
Eclipse (www.eclipse.org), Sublime Text, phpStorm (https://
www.jetbrains.com/phpstorm), Visual Studio Code (https://
code.visualstudio.com), Brackets, Netbeans.
• Manuales de PHP y MySQL.
Sintaxis básica
<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.
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
++, --
*, /, %
+,-
<, <=, >, >=
==, !=
&&
||
and
or
Estructuras de control
Estructuras selectivas:
• if-else
• switch
Estructuras repetitivas:
• while
• for
• foreach
Estructuras de control
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
<?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
}
$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
while (condición)
sentencia
<?php
echo "<ul><br>";
$i=1;
while ($i <= 5)
{
echo "<li>Elemento $i</li><br>";
$i++;
}
echo "</ul><br>";
?>
Estructuras de control
<?php
echo "<ul><br>";
for ($i=1; $i<=5; $i++)
echo"<li>Elemento $i</li><br>";
echo "</ul><br>";
?>
Funciones
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
Sintaxis:
array ([clave =>] valor, ...)
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
Ejemplos:
foreach ($color as $valor)
Salida:
Valor: 101
Valor: 51
Valor: 255
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
formpost.php:
<html>
<body>
Hola <?php echo $_POST["nombre"]; ?><br>
Tu email es: <?php echo $_POST["email"]; ?>
</body>
</html>
Formularios
Ejemplo:
<html>
<body>
<form action="formget.php" method="get">
Nombre: <input type="text" name="nombre"><br>
Email: <input type="text" name="email"><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>
formget.php:
<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.
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
4.294.967.295 bytes
Funciones para conectarse a
MySQL
Función Descripción
mysqli_connect(host, Abre una conexión al servidor
`usuariodb`,`pasword`,`bd`); MySQL.
<head>
</head>
<body>
<?php
$host = "localhost";
$puerto = "3306";
$usuario = "root";
$contrasena = "";
$baseDeDatos ="tutorialphp5";
$tabla = "personas";
Consultar datos en MySQL con php
function Conectarse(){
exit();
} else{
if (!mysqli_select_db($link, $baseDeDatos)) {
exit();
}else{
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
$link = Conectarse();
if($_POST) {
if($resultInsert) {
}else{
?>
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>
</body>
</html>
Actualizar datos en MySQL con php
<html>
<head>
</head>
<body>
<?php
$host = "localhost";
$puerto = "3306";
$usuario = "root";
$contrasena = "";
$baseDeDatos ="tutorialphp5";
$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){
Apellidos = '".$_POST['apellidoForm']."'
WHERE ID = ".$_POST['idForm'].";";
if($resultUpdate){
} else{
?>
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) {
$rowSelectByID = mysqli_fetch_array($resultSelectByID);
?>
</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(){
exit();
}else{
if (!mysqli_select_db($link, $baseDeDatos)){
exit();
}else{
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 "</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.
segundo.php
// 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 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;
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.
protected $age;
return $this->name;
$this->name = $name;
}
POO en php
Ejemplo (cont.):
private $designation;
private $salary;
return $this->age;
$this->age = $age;
return $this->designation;
}
POO en php
Ejemplo (Cont.):
public function setDesignation($designation) {
$this->designation = $designation;
return $this->salary;
$this->salary = $salary;
return $this->callToProtectedNameAndAge();
}
POO en php
Ejemplo (Cont.):
$employee->setName('Bob Smith');
$employee->setAge(30);
$employee->setDesignation('Software Engineer');
$employee->setSalary('30K');
?>
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:
http://www.apache.org
http://www.php.net
http://www.mysql.com
https://mariadb.com/kb/es/usando-mariadb/