Preguntar if ($sure==”no”) es muy riesgoso porque si escribe NO(con mayúsculas) o cualquier cosa borrará el registro. Se debería preguntar if (strtoupper($sure) == “SI” || strtoupper($sure) == “SÍ”)
Introducción
¿Cómo conectarse a una base de datos con PHP?
Programa un sistema de control de gastos
Diagramando la base de datos
Creando nuestra base de datos
Instalación de phpMyAdmin
Creando tablas con phpMyAdmin
Conexión con una base de datos
Instalación de drivers para PDO en Linux
Conexión con MySQLi
Conexión con PDO
Refactor de la conexión con clases
Inserción de datos con MySQLi
Creación de controladores para la aplicación
Creación de ENUMS para la aplicación
Consultas con MySQLi
Evitando SQL Injection con bindParam
Inserción de datos con PDO
Consultas con PDO
Evitando SQL Injection con consultas preparadas en PDO
Ligando parámetros con bindParams
Ligando parámetros con bindValue
Selección de datos
Consultando datos con FetchAll
Consultando datos con Fetch
Vinculando columnas con bindColumn
Completando nuestros controladores
Transacciones: cómo revertir una consulta SQL con PHP
Reto: CRUD con PHP y SQL
Conexión a formularios en HTML
Creación de nuestro router
Programando los métodos del router
Mostrando nuestros datos en HTML
Próximos pasos
¿Quieres un Curso Profesional de PHP?
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
RetaxMaster
Aportes 5
Preguntas 0
Preguntar if ($sure==”no”) es muy riesgoso porque si escribe NO(con mayúsculas) o cualquier cosa borrará el registro. Se debería preguntar if (strtoupper($sure) == “SI” || strtoupper($sure) == “SÍ”)
El uso de beginTransaction es importante, por ejemplo, en el caso de grabar una factura donde hay que actualizar las tablas de stock, cuentas corrientes, comisiones a vendedores, etc. y se produce un error durante la actualización en algunas de las tablas, algunas tablas quedarían actualizadas y otras no, esto haría que la base de datos no fuera confiable. Para solucionar este inconveniente se debe hacer un rollback, así la base de datos queda intacta aunque la facturación quedará pendiente.
Formas seguras de ejecutar MySQL … Nunca usar el comando “beginTransaction()” con “DROP TABLE”, MySQL vs. MariaDB no respetan y al toque la borra!!! Es de sumo cuidado!
Que peligro !!
Confirmo, he hecho la prueba con MariaDB y no responde a beginTransaction()
De hecho lanza una exception :
Prueba:
public function drop($table)
{
// Clase 21: Transacciones: cómo revertir una consulta
$statement = $this->pdo->beginTransaction();
$statement = $this->pdo->exec("DROP TABLE {$table}");
$this->pdo->rollBack();
// $this->pdo->commit();
}
Resultado:
PDOException
There is no active transaction
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?