Estudio de Funciones y Clases Complejas en PHP

Funciones

Funciones de Validación y Depuración


Funciones de Fecha y Texto


Funciones de Estructuras y Datos


Funciones de Archivos y Cabeceras


Clases PHP

Almacenamiento de fechas en MySQL

MySQL proporciona varios tipos de datos para representar fechas:

DATE

DATETIME

TIMESTAMP

TIME

YEAR


isset vs empty vs is_null

// Source - https://stackoverflow.com/a
// Posted by rjhdby, modified by community. See post 'Timeline' for change history
// Retrieved 2025-11-26, License - CC BY-SA 4.0

$a - variable con un valor distinto de null (e.g. TRUE)
$b - variable con valor null. `$b = null;`
$c - variable no declarada
$d - variable con valor que devuelve FALSE (ej. string vacío, FALSE o array vacío)
$e - variable declarada pero sin valor asignado
$a->a - declarada, pero no asignada propiedad object. (`public $a;`)
A::$a - declarada, pero no asignada propiedad static class.

         |   $a  |   $b  |   $c  |   $d  |   $e  | $a->a | A::$a |
---------+-------+-------+-------+-------+-------+-------+-------+
is_null()| FALSE | TRUE  |TRUE*W | FALSE | TRUE*W| TRUE  | TRUE  |
---------+-------+-------+-------+-------+-------+-------+-------+
isset()  | TRUE  | FALSE | FALSE | TRUE  | FALSE | FALSE | FALSE |
---------+-------+-------+-------+-------+-------+-------+-------+
empty()  | FALSE | TRUE  | TRUE  | TRUE  | TRUE  | TRUE  | TRUE  |
---------+-------+-------+-------+-------+-------+-------+-------+
null === | FALSE | TRUE  |TRUE*W | FALSE | TRUE*W| TRUE  | TRUE  |
---------+-------+-------+-------+-------+-------+-------+-------+
null ==  | FALSE | TRUE  |TRUE*W | TRUE  | TRUE*W| TRUE  | TRUE  |
---------+-------+-------+-------+-------+-------+-------+-------+

TRUE*W - function return TRUE, but same time emits WARNING.

DateTime


PDO


PDO Statement

$pdo = new PDO("mysql:host=localhost;dbname=tienda", "user", "pass");

$sentencia = $pdo->prepare("SELECT * FROM productos WHERE categoria = :cat");
$sentencia->bindValue(":cat", "tecnologia");
$sentencia->execute();

$resultados = $sentencia->fetchAll(PDO::FETCH_ASSOC);
print_r($resultados);


PDO Exception

try {
      /* Contenido */
  } catch (PDOException $e) {
      echo "Error de conexión: " . $e->getMessage();
  }


DOMDocument

$doc = new DOMDocument();
$doc->formatOutput = true;

$raiz = $doc->createElement("tienda");
$doc->appendChild($raiz);

$producto = $doc->createElement("producto", "Ordenador");
$raiz->appendChild($producto);

echo $doc->saveXML();
Entorno de uso Clase ¿Cuándo se instancia? Utilidad Atributos utilizados Métodos utilizados
Al trabajar con fechas y marcas de tiempo DateTime new Manejo de fechas timezone, date format(), modify(), setDate(), setTime()
Al trabajar con bases de datos MySQL del modo viejo MySQLi new Manejo de comunicaciones con una base de datos MySQL host, username, password, dbname query(), prepare(), connect(), close()
Al trabajar con bases de datos modernamente PDO new Manejo de comunicaciones con una base de datos relacional DSN, usuario, contraseña query(), prepare(), exec(), setAttribute()
Al recibir resultados de un query PDOStatement Al utilizar el método prepare() o query() en un objeto PDO Trabajar con el conjunto de resultados de un query Parámetros de consulta, modo de obtención fetchObject(), fetchAll(), execute(), bindValue()
Al ocurrir un error del SGBD PDOException Al saltar una excepción de PDO en un try Controlar excepciones producidas en una base de datos relacional message, code getMessage(), getCode(), getTrace()
Al trabajar con documentos almacenamiento de datos DOMDocument new Trabajar con documentos XML/HTML de forma cómoda y global preserveWhiteSpace, formatOutput createElement(), load(), save(), appendChild()
Al definir elementos en un fichero DOMElement Al usar el método createElement() en un objeto DOMDocument Definir elementos DOM para estructurar un fichero de almacenamiento tagName, attributes appendChild(), setAttribute()
Al usar el método appendChild() en un objeto DOMElement DOMNode Al usar el método appendChild() en un objeto DOMDocument o DOMElement Definir cualquier nodo dentro de un documento para estructurar el fichero nodeName, nodeValue, nodeType appendChild(), cloneNode(), removeChild()
Al trabajar con ficheros XML SimpleXMLElement new Trabajar cómodamente con ficheros XML children, attributes asXML(), xpath(), children()