Ir al contenido principal

Uso de PDO conexión a base de datos

En la entrada anterior observamos detalles importantes relacionados a la conexión con bases de datos usando PHP. La intención no es mostrar mucho aquí sobre PHP, ya que eso lo haré en su momento mediante entradas de blog destinadas para ello. En este punto ya debemos saber que debemos elegir, al menos con el uso de MariaDB entre las dos clases principales que tiene el lenguaje de PHP. Yo usaré "PDO" en todo momento. Si no recuerdas puedes ver el enlace de la documentación oficial aquí: https://www.php.net/manual/en/mysqlinfo.api.choosing.php

En cuanto a los drivers de "PDO" puedo decir que aprender "PDO" te facilita la conexión con diferentes bases de datos usando la misma interfaz de clase. Para ver los drivers disponibles para "PDO" aquí; https://www.php.net/manual/en/pdo.drivers.php

MariaDB se asocia bien con una amplia variedad de lenguajes de programación y marcos como PHP, C #, JavaScript, Ruby en rieles, Django y más. PHP sigue siendo el más popular de todos los idiomas disponibles debido a su simplicidad.

Aquí se muestra la declaración de una instancia de la clase "PDO" para establecer conexión con la base de datos. Fíjese en los parámetros se necesita para que su ejecución sea satisfactoria.

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
Observa lo que nos tiene que decir la documentación oficial en cuanto a la instancia de esta clase.

Las conexiones se establecen creando instancias de la clase base PDO. No importa el controlador que se utilice; siempre se usará el nombre de la clase PDO. El constructor acepta parámetros para especificar el origen de la base de datos (conocido como DSN) y, opcionalmente, el nombre de usuario y la contraseña (si la hubiera).

Valida la informacion aqui: https://www.php.net/manual/es/pdo.connections.php

Ahora veremos el control de excepciones. Esto es importante, ya que podemos escribir instrucciones que trabajen posibles errores en tiempo de ejecución. Errores inesperados que pueden hacer que nuestra aplicación colapse.

try {
$mbd = new PDO('mysql:host=localhost;dbname=prueba', $usuario, $contraseña);
foreach($mbd->query('SELECT * from FOO') as $fila)
{
print_r($fila);
}
$mbd = null;
} catch (PDOException $e) {
print "¡Error!: " . $e->getMessage();
die();
}

No te preocupes por comprender la estructura anterior, ahora mismo te la explicaré para que en futuras ocasiones puedas implementar esta y así controlar excepciones que pudientes ser lanzadas lo cual los motivos serian desconocidos y además no estriamos presentes ella ejecución del mismo, lo que tenemos que considerar si algo falla lo aremos con esta estructura. Recuerda que tiempo de ejecución significa cunado uno de los usuarios ejecuta tu programa y el servidor está en pleno procesamiento del las instrucciones que le proveemos nosotros los programadores previamente al sistema.

Comencemos con la explicación. try catch en español se puede traducir como inténtalo y captura. Observa que try posee llaves después de esa palabra reservada así try {} y catch de igual forma a diferencia que necesita un parámetro lo cual lo usará para desplegar el dato de la excepción, lo que algunos llaman error, no importa la idea es la misma si sucede algo captura el porqué cuando y donde, del error, falla o excepción, como mejor desees llamarlo, pero ya le advierto que los errores son tratados como excepciones.

/* Properties */
public array $errorInfo;
protected string $code;
/* Inherited properties */
protected string $message;
protected int $code;
protected string $file;
protected int $line;
/* Inherited methods */
final public Exception::getMessage(): string
final public Exception::getPrevious(): Throwable|null
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
final private Exception::__clone(): void

Ahora que sabes esto puedo decir que deberías ir a ver que tipos de excepciones y datos puedes obtener y manejar. Dejo enlace aquí https://www.php.net/manual/en/class.pdoexception.php

Más adelante intentaré reproducir excepciones para que puedas ver en la práctica como funcionan y como manejar los mismos. Por ahora es bueno que tengas estos conocimientos, ya que en un futuro trabajarás diferentes excepciones según la implementación que necesites en tu aplicación. Aunque no es complejo, pero es bueno tenerlo en consideración.






Referencias

PHP: Excepciones - manual. (s. f.). PHP. Recuperado 5 de julio de 2021, de https://www.php.net/manual/es/language.exceptions.phpPHP: Exception - manual. (s. f.). PHP. Recuperado 5 de julio de 2021, de https://www.php.net/manual/es/class.exception.phpPHP: Operadores de control de errores - Manual. (s. f.). PHP. Recuperado 5 de julio de 2021, de https://www.php.net/manual/es/language.operators.errorcontrol.phpPHP: PDOException - manual. (s. f.). Php.Net. Recuperado 5 de julio de 2021, de https://www.php.net/manual/en/class.pdoexception.phpPHP: RuntimeException - manual. (s. f.). PHP. Recuperado 5 de julio de 2021, de https://www.php.net/manual/es/class.runtimeexception.php

Comentarios

Entradas populares de este blog

Elemento de formulario atributo {action}

En esta ocasión hablaré del atributo {action}, que en resumen solo contiene la URL que procesará los datos contenidos en el formulario. Puede ser muchos lenguajes los que procesen el formulario, sin embargo, tomaremos como ejemplo un script de PHP. Dicho esto podemos decir que el atributo {action} es propio del elemento {form} de HTML y es usado para enviar todo el contenido dentro del formulario. Aunque debes tener en cuneta de que solo los elementos {input} con atributo {type} y {neme} son enviados. Existe una buena cantidad de input type de lo que hablaremos más adelante. Por lo que te adelanto que estos son los elementos que vemos para la entrada de texto números y controles dentro de páginas web. Son elementos capaces de recoger datos a rais de entrada por el usuario por también ficheros de imágenes y mucho más.

HTMLElement.accessKey

Presione dos veces en el texto para leer, después de haber activado la funcionalidad si estás desde un móvil. Si estás desde un ordenador puedes hacer doble clic en los textos de esta entrada para leerlos. Nota: Más adelante se actualizará la entrada y mostraremos el mensaje para dispositivos móviles usando JavaScript para detectar el dispositivo que visita la página web. En esta entrada hablaré sobre el atributo {accesskey} de HTML5. Este atributo da la posibilidad de brindar al usuario realizar acción en un elemento de HTML. Por esta razón analizaremos las posibilidades que tenemos para que esta acción realmente, beneficie al usuario. Como de costumbre publico definiciones de atributos, funciones, mét

Formulario HTML attribute: accept-charset

Definición del atributo {accept-charset} de HTML5. En esta ocasión he realizado una investigación de los parámetros que podemos pasar a este atributo. La definición a continuación que nos brinda MDN dice: accept-charset Codificaciones de caracteres separadas en el espacio El servidor acepta. El navegador los usa en el orden en que se enumeran. El valor predeterminado significa la misma codificación que la página. (En versiones anteriores de HTML, las codificaciones de caracteres también podrían ser delimitadas por comas). Sin embargo, carece de enlaces para ver detalles sobre la implementación del atributo y más sobre el tema. Un análisis importante es que podemos definir la codificación de caracteres diferentes al resto de la página web o aplicación en la que estemos trabajando. Esto solo para casos específicos. También debemos recordar que

Efectos CSS con Izmir Hover Effects

Mira que bellos estos efectos con una librería CSS llamada Izmir Hover Effects Pasa el ratón sobre las imágenes o haz clic sobre ellas si etas en el móvil Mi avatar. Mi avatar.

HTML / Atributos

Atributos / HTML Nombre del atributo Descripción Estado de revisión accept Lista de tipos que acepta el servidor, normalmente un tipo de archivo. Puedes encontrar una entrada con ejemplo en este blog aquí Formulario HTML attribute: accept

JavaScript Array

Follow @codefuncode En esta ocasión les traigo algo muy sencillo. Se trata de cómo definir una matriz y acceder a sus valores. Recordemos que las matrices tienen valores de acuerdo a su índice. O sea que una matriz puede tener distintos valores y para encontrarlos debemos especificar el índice en que se encuentra. A continuación un ejemplo de cómo definir una matriz y acceder a sus valores. Un Aray en JavaScript es un objeto. Básicamente, todo es un objeto en JavaScript. Por lo que cuando estés avanzado con este lenguaje verás que en ocasiones deberás buscar el objeto en sí, ya que muchos de los objetos tienen métodos ya definidos por defecto y en otras ocasiones tienen métodos que no conocemos, porque en la internet no se habla mucho de ellos. Más adelante hablaré muchos detalles sobre esto. Más adelante hablaremos de matrices asociativas y mucho más. Por ahora veamos esto.

Atributo accept de HTML

    En esta ocasión hablaré del atributo {accept=" "} de HTML. A modo de introducción este atributo hace referencia al tipo de archivos que permitimos al usuario insertar en un input type="file" Ahora comenzamos con la descripción y una lista de parámetros que en teoría deberían ser válidos para aplicaciones web. Sin embargo, es necesario hacer pruebas en los navegadores más usados para comprobar la compatibilidad. Este atributo recibe como parámetro de tipo {MIME types} por lo que podemos ir a esta referencia y deberían funcionar. Estos son los tipos más comunes, sin embargo, hay una listas más completas, pero no asegura la compatibilidad. Por otro lado, no es aconsejable permitir a los usuarios subir archivos de tipo ejecutaba o que puedan ejecutarse de alguna forma. El atributo {accept=" "}, toma como su valor una lista separada