PHP PDO Modificar registros MySQL

- Versión
- Descargar 297
- Tamaño del archivo 2.91 KB
- Recuento de archivos 1
- Fecha de creación 12 enero, 2024
- Última actualización 12 enero, 2024
PHP PDO Modificar registros MySQL. La actualización de registros es una de las instrucciones más importantes para trabajar en programación PHP utilizando PDO. Porque son parte de una estructura llamada CRUD, que es muy fundamental para gestionar módulos y/o sistemas PHP.
PHP PDO Modificar registros MySQL
Para ejecutar este ejemplo de modificación con PHP PDO, debemos poseer una base de datos y una tabla. En este ejemplo, estamos trabajando con una tabla de noticias que es muy simple.
Vea a continuación un ejemplo de declaración SQL de nuestra tabla de publicaciones.
CREATE TABLE `noticias` (
`id` int(11) NOT NULL,
`titulo` varchar(150) CHARACTER SET utf8mb4 NOT NULL,
`contenido` text CHARACTER SET utf8mb4 NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
--
-- Indices de la tabla `noticias`
--
ALTER TABLE `noticias`
ADD PRIMARY KEY (`id`);
ALTER TABLE `noticias`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
Primera forma: Modificación con marcadores de posición (Placeholders)
Marcador de posición posicional breve y más fácil de usar. Sin embargo, se basará en el orden de posición de las variables que se desean modificar.
Vea el código de ejemplo a continuación:
<?php
// Conexion PDO MYSQL
$host = 'localhost';
$db = 'update_pdo';
$user = 'root';
$password = '';
$dsn = "mysql:host=$host;dbname=$db;charset=UTF8";
try {
$db= new PDO($dsn, $user, $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
} catch (PDOException $e) {
echo $e->getMessage();
}
// Datos e información de Prueba
$data = ['Prueba titulo 1 - modificar', 'Contenido 2 - actualizado', 1];
// Consulta SQL de actualización
$sql = "UPDATE noticias SET titulo=?, contenido=? WHERE id=?";
// Ejecutamos la consulta SQL
$statement = $db->prepare($sql);
//Impresion de resultados
if($statement->execute($data)) {
echo "Noticia modificado correctamente!";
}
?>
Segunda forma: Modificación con marcadores de posición con nombre
Si desea una matriz predefinida con valores más clara y precisa este ejemplo estará muy bien. Por lo tanto, permitirá que pueda manejar de manera individual las variables que de desean modificar porque posee nombres visibles.
Vea el siguiente código:
<?php
// Conexion PDO MYSQL
$host = 'localhost';
$db = 'update_pdo';
$user = 'root';
$password = '';
$dsn = "mysql:host=$host;dbname=$db;charset=UTF8";
try {
$db = new PDO($dsn, $user, $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
} catch (PDOException $e) {
echo $e->getMessage();
}
// Datos e información de Prueba
$data = [
'titulo'=>'Prueba titulo 2.1 - Modificacion',
'contenido' => 'Contenido 2.1 - Modificacion',
'id' => 1
];
$sql = "UPDATE noticias SET titulo=:titulo, contenido=:contenido WHERE id=:id";
$statement = $db->prepare($sql);
if($statement->execute($data)) {
echo "Noticia modificado correctamente!";
}
?>
Tercera forma: Marcadores de posición con nombre utilizando el método bindParam()
El uso de bindParam() se utiliza para vincular un parámetro a la variable especificada en una declaración SQL. Es decir, se puede declarar si el valor pasado en un numero o cadena de texto.
Veamos un ejemplo de usabilidad
<?php
// Conexion PDO MYSQL
$host = 'localhost';
$db = 'update_pdo';
$user = 'root';
$password = '';
$dsn = "mysql:host=$host;dbname=$db;charset=UTF8";
try {
$db = new PDO($dsn, $user, $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
} catch (PDOException $e) {
echo $e->getMessage();
}
// Datos e información de Prueba
$data = [
'titulo'=>'Prueba titulo 2.2 - Modificacion',
'contenido' => 'Contenido 2.2 - Modificacion',
'id' => 1
];
// Consulta SQL de actualización
$sql = "UPDATE posts SET titulo=:titulo, contenido=:contenido WHERE id=:id";
// Ejecutamos la consulta SQL
$query = $db->prepare($sql);
// Declaramos opciones configurables
$query->bindParam(':id', $data['id'], PDO::PARAM_INT);
$query->bindParam(':titulo', $data['titulo']);
$query->bindParam(':contenido', $data['contenido']);
//Impresion de resultados
if($query->execute()) {
echo "Noticia modificado correctamente!";
}
Para finalizar
El uso de marcadores de posición nos ayuda a evitar ataques como ser la inyección SQL y otros ataques. Por lo tanto, es recomendable usar PDO para conectarse a MySQL.
Si desea más artículos puede acceder a PHP PDO.
Descargar