Ver índice
Modificar registros (MySQLi)

        Ocultar índice  

   Índice de contenidos
   Instalación en Windows
   Instalación en Ubuntu
   Servidores seguros
   Páginas dinámicas
   Sintaxis básica
   Operaciones
   Arrays
   Formatos de presentación
   Operadores
   Bucles
   Extraer y ord. información
   Funciones
   Ficheros externos
   Imágenes dinámicas
   Gestión de directorios
   Cookies y sesiones
   Clases y objetos
   Ficheros en formato PDF
   Bases de datos MySQL
   PHP y XML
   PDO - Bases SQLite / MySQL
   MySQL a traves de misqli
   Algo de JavaScript y AJAX


Sintaxis MySQL de modificación de registros

Las sentencias MySQL que permiten la modificación de registros en las tablas son idénticas a ls ya comentadas con anterioridad y tal como decíamos entonces pueden incluir algunas de las siguientes cláusulas que, al igual que ocurría en casos anteriores, pueden tener categoría de obligatorias u opcionales.

El orden en que deben estar indicadas ha de seguir la misma secuencia en la que están descritas aquí.

Modificar un campo en todos los registros de una tabla

La sentencia MySQL, que permite modificar uno o varios campos en todos los registros de una tabla, es la siguiente:

UPDATE tabla SET campo1=valor1, campo2=valor2

  ¡Cuidado!  

Hay que tener muy presente que con esta sentencia –en la que no aparece WHERE– se modificarán TODOS LOS REGISTROS DE LA TABLA y por lo tanto los campos modificados tendrán el mismo valor en todos los registros.

Algunas consideraciones sobre la sintaxis

Siempre que manejes PHP y MySQL debes tener muy presente lo siguiente:

En este primer ejemplo, hemos incluido una actualización de tablas que pondrá puntuación 7 en la primera de las pruebas a todos los aspirantes a astronautas de nuestro ejemplo. Es un caso de actualización sin la condición WHERE y tiene el código comentado.

Consulta mediante procesos Ver código fuente Consulta mediante objetos Ver código fuente

Recuento de resultados

El recuento de los resultados de la ejecución de una sentencia tiene dos opciones que dependen del tipo de esta. Cuando se trata de sentencias que no producen modificación en los contenidos (caso de las consultas) el recuento de resultados utiliza las funciones y sintaxis ya conocidas de

$num_resultados=mysqli_num_rows($resultado)
o
$num_resultados=$resultado->num_rows

En ambos casos la variables $num_resultados recogerá el número de registros (filas) obtenidos como resultado de la consulta. La primera de las opciones se utiliza cuando se gestiona la consulta mediante procesos mientras que es segundo corresponde a consultas mediante objetos.

Cuando se trata de sentencias que sí producen modificación en los contenidos (altas, modificaciones o borrado de registros) el recuento de resultados requiere de esta sintaxis:

$cuenta_resultados=mysqli_affected_rows($conexion)
o
$cuenta_resultados=$objetoMySQLi->affected_rows

En el primer caso –programación mediante procesos– se utiliza la función mysqli_affected_rows con el parámetro identificador de conexión: $conexion

En el segundo supuesto –programación orientada a objetos– se utiliza la propiedad affected_rows que es la que contiene el valor de ese resultado.

Selección y modificación de un solo registro

Es una de las opciones más habituales. Es el caso en el que –mediante un formulario– asignamos una condición a WHERE y simultáneamente asignamos los nuevos valor del campo o campos elegidos. Requiere la siguiente sintaxis:

UPDATE tabla SET campo1=valor1, campo2=valor2 WHERE condición

La condición es fundamental en esta opción y normalmente aludirá a un campo índice (clave principal o única), de modo que sea un solo registro el que cumpla la condición. Podría ser el caso, en nuestro ejemplo, del campo DNI que por su unicidad garantizaría que la modificación solamente va a afectar a uno solo de los registros.

El ejemplo siguiente nos permitirá hacer modificaciones de este tipo en la tabla deomodat2. Observa el código fuente y verás que mediante un simple recurso JavaScript, el script que realiza la modificación nos reenvía al formulario con un mensaje de confirmación de la modificación. En este primer caso utilizaremos las instrucciones de modificación mediante procesos

Ejecutar la modificacción Ver código «formulario» Ver código «script»

Aquí tienes el mismo ejemplo del supuesto anterior modificando a programación mediante objetos el tratamientos de las instrucciones de gestión de la base de datos

Ejecutar la modificacción Ver código «formulario» Ver código «script»

Modificación simúltanea de un campo en cualquiera de los registros

Aquí tienes un ejemplo que permite visualizar el valor actual de todas las puntuaciones de la prueba 2 de los astronautas así como sus nombres y apellidos y DNI y en la cual se pueden modificar ninguno, uno, varios o todos los valores y posteriormente actualizarlos todos con los nuevos valores. Igual que en el caso anterior, en este primer ejemplo efectuaremos las modificaciones tratando mysqli mediante procesos mientra que en el segundo supuesto lo hacemos mediante programación orientada a objetos.

Ejecutar la modificacción Ver código «formulario» Ver código «script»

Ejecutar la modificacción Ver código «formulario» Ver código «script»