Está en la página 1de 81

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 (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

 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 ("conecta.php");
require ("fecha.php");
require ("cadena.php");
require ("globals.php");
?>
</HEAD>
<BODY>
<?php
include ("cabecera.html");
?>
// Código HTML + PHP
. . .
<?php
include ("pie.html");
?>
</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=‘logo.gif’>”;
// muestra <IMG SRC=‘logo.gif’>
echo “<IMG SRC=\”logo.gif\”>”;
// muestra <IMG SRC=“logo.gif”>
• 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="formpost.php" method="post">
Nombre: <input type="text" name="nombre"><br>
Email: <input type="text" name="email"><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>

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.

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 -2.147.483.648 2.147.483.647 4.294.967.295
-
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 … 4.294.967.295 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
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.

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:
primero.php
// 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="segundo.php">Segundo!</a>

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 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:
 http://www.apache.org
 http://www.php.net
 http://www.mysql.com
 https://mariadb.com/kb/es/usando-mariadb/

También podría gustarte