Saltar a contenido

Prueba de conocimiento UT 06

Parte 1: Preguntas tipo test

  1. ¿Cuál de las siguientes funciones PHP se usa para almacenar datos en un archivo?

    • a. fwrite()
    • b. file_hash()
    • c. store_data()
    • d. save_file()
  2. ¿Qué función de PHP permite cifrar contraseñas antes de almacenarlas?

    • a. md5()
    • b. password_hash()
    • c. sha1()
    • d. bcrypt_encrypt()
  3. ¿Qué constante se usa con password_hash() para aplicar el algoritmo bcrypt?

    • a. HASH_BCRYPT
    • b. BCRYPT_DEFAULT
    • c. PASSWORD_BCRYPT
    • d. DEFAULT_BCRYPT
  4. ¿Cuál es el método correcto para abrir un archivo en modo lectura en PHP?

    • a. open("archivo.txt", "read")
    • b. fopen("archivo.txt", "r")
    • c. file_get("archivo.txt", "r")
    • d. file_read("archivo.txt")
  5. ¿Qué extensión PHP proporciona una interfaz orientada a objetos para bases de datos?

    • a. mysqli
    • b. mysql_connect
    • c. PDO
    • d. sqlite3
  6. ¿Cuál es la función de lastInsertId() en PDO?

    • a. Devuelve el ID más grande de la tabla
    • b. Devuelve el último ID insertado en una tabla
    • c. Elimina el último registro insertado
    • d. Recupera todos los registros
  7. ¿Qué propiedad se utiliza para que PDO lance excepciones en caso de error?

    • a. PDO::THROW_EXCEPTION
    • b. PDO::ERRMODE_EXCEPTION
    • c. PDO::MODE_THROW
    • d. PDO::ERROR_EXCEPTION
  8. ¿Qué comando SQL se usa para modificar datos existentes?

    • a. SELECT
    • b. INSERT
    • c. UPDATE
    • d. ALTER
  9. ¿Cuál es una característica de las transacciones?

    • a. Ejecutan solo una sentencia a la vez
    • b. No garantizan integridad de datos
    • c. Se pueden confirmar o revertir
    • d. Solo se usan con archivos CSV
  10. ¿Qué hace el método prepare() en PDO?

    • a. Valida datos
    • b. Crea una plantilla de consulta SQL
    • c. Ejecuta directamente la consulta
    • d. Abre una conexión con la base de datos
  11. ¿Cuál es el modo adecuado para trabajar con archivos binarios?

    • a. wb+
    • b. rb+
    • c. ab+
    • d. Todas las anteriores
  12. ¿Qué comando SQL se usa para eliminar registros?

    • a. DROP
    • b. TRUNCATE
    • c. DELETE
    • d. REMOVE
  13. ¿Cuál es la función de password_verify()?

    • a. Generar contraseñas seguras
    • b. Comparar una contraseña en texto con una cifrada
    • c. Cifrar contraseñas
    • d. Validar emails
  14. ¿Qué tipo de persistencia usarías para guardar imágenes?

    • a. Sesiones
    • b. Ficheros
    • c. API
    • d. Variables en memoria
  15. ¿Cuál de estas funciones sirve para recuperar datos de una tabla?

    • a. SELECT
    • b. GET
    • c. RETRIEVE
    • d. FETCH
  16. ¿Cuál de estas es una ventaja de usar sentencias preparadas?

    • a. Aumentan el tamaño de las consultas
    • b. Permiten evitar inyecciones SQL
    • c. Hacen la base de datos más lenta
    • d. Permiten ejecutar código JavaScript
  17. ¿Qué significa ACID en el contexto de transacciones?

    • a. Atomicidad, Consistencia, Integridad, Dependencia
    • b. Autenticación, Conexión, Integridad, Durabilidad
    • c. Atomicidad, Consistencia, Aislamiento, Durabilidad
    • d. Asincronía, Conectividad, Interfaz, Datos
  18. ¿Cuál de las siguientes instrucciones permite realizar una búsqueda parcial en SQL?

    • a. SEARCH
    • b. FIND
    • c. LIKE
    • d. CONTAINS
  19. ¿Para qué sirve el método fetchAll() en PDO?

    • a. Ejecuta una consulta
    • b. Recupera todos los resultados como array
    • c. Lanza una excepción
    • d. Inserta todos los registros
  20. ¿Qué modo de apertura se usa para escribir en un archivo sin sobrescribirlo?

    • a. w
    • b. r+
    • c. a
    • d. x

Parte 2: Ejercicio práctico

Mini aplicación e-commerce con autenticación y gestión de productos. Se han de generar las siguientes clases.

  1. Base de datos
    Crea una base de datos con las siguientes tablas (puedes hacerlo desde phpMyAdmin o script SQL):
  • usuarios: id, nombre, usuario, password, email
  • productos: id, nombre, precio, stock
  1. Registro y Login (PDO)
    - Formulario de registro que guarda datos usando password_hash()
    - Formulario de login que verifica con password_verify()
    - Manejo de sesiones para mantener al usuario logueado

  2. Gestión de productos (CRUD con PDO)
    - Mostrar listado de productos
    - Permitir añadir, editar y eliminar productos (mínimo nombre y precio)