Me preguntaba cómo activar una notificación si se inserta un nuevo registro en una base de datos, usando PHP y MySQL.Notificación de actualización en vivo sobre cambios en la base de datos MYSQL PHP
Respuesta
MySQL ahora tiene activadores y procedimientos almacenados, pero no creo que tengan forma alguna de notificar un proceso externo, por lo que yo sé que no es posible. Tendría que sondear la base de datos cada segundo para buscar nuevos registros.
Incluso si fuera así, esto supone que su proceso de PHP es de larga duración, de modo que puede darse el lujo de esperar a que aparezca un registro. Dado que la mayoría de PHP se usa para sitios web donde se ejecuta el código y luego sale lo más rápido posible, no está claro si eso es compatible con lo que tienes.
Lo más simple es probablemente sondear el DB cada pocos segundos y ver si se han insertado nuevos registros. Debido al almacenamiento en caché de consultas en la base de datos, esto no debería afectar sustancialmente el rendimiento de la base de datos.
Si todos los cambios en su base de datos son hechos por PHP, crearía una función de contenedor para mysql_query y si el tipo de consulta fuese INSERT, REPLACE, UPDATE o DELETE llamaría a una función para enviar el correo electrónico respectivo.
EDIT: se olvidó de mencionar pero también se podría hacer algo como lo siguiente:
if (mysql_affected_rows($this->connection) > 0)
{
// mail(...)
}
Un día te pido, en el foro de MySQL si el evento como en Firebird o Interbase existe en MySQL y veo que alguien respuesta Sí (realmente no estoy seguro)
cheque esto: http://forums.mysql.com/read.php?84,3629,175177#msg-175177
esto se puede hacer con relativa facilidad usando los procedimientos almacenados y disparadores. He creado una pantalla 'Live View' que tiene una pantalla de desplazamiento que se actualiza con nuevos eventos de mi tabla de eventos. Puede ser un poco complicado, pero una vez que se ejecuta es rápido.
Puede crear un desencadenante que se ejecute cuando ocurre una actualización. Es posible ejecutar/notificar un proceso externo usando una UDF (función definida por el usuario). No hay ningún método incorporado para hacerlo, por lo que es un caso de carga de un plugin UDF que lo hará por usted.
Google para 'mysql udf sys_exec' o 'mysql udf ipc'.
- 1. Cómo implementar cambios en la base de datos en un servidor en vivo?
- 2. Migración de los cambios de la base de datos del desarrollo a vivo
- 3. alterar múltiples bases de datos mysql a la vez (cambios en la base de datos SAAS)
- 4. Estrategias para copiar datos de una base de datos MySQL en vivo a un servidor intermedio
- 5. notificación de bandeja en la actualización de la base de datos
- 6. PHP - Almacenamiento de texto en la base de datos MySQL
- 7. iOS número de insignia actualización en vivo
- 8. Manteniendo una base de datos MySQL local sincronizada con una base de datos en vivo (replicación MySQL?)
- 9. La mejor manera de archivar la base de datos MySQL en vivo
- 10. Modelo de base de datos en vivo y en borrador
- 11. base de datos de cambios MySQL con valor de variable
- 12. Cómo fusionar los cambios en la base de datos Drupal
- 13. Notificación sobre los cambios del objeto blob azul
- 14. Actualización Colación de todos los campos en la base de datos sobre la marcha
- 15. Backbone.js en base de datos MySQL
- 16. establecer la sesión en la base de datos en php
- 17. Error al tirar de la base de datos mysql en la base de datos mysql local
- 18. MySQL "ERROR 1046 (3D000): ninguna base de datos seleccionada" en la consulta de actualización
- 19. Verificar cambios en la base de datos (control de versión)
- 20. Tamaño de la base de datos. PHP - MySQL
- 21. Actualización de una base de datos MySql usando PHP a través de una función onClick javascript
- 22. Caracteres extraños de la base de datos PHP MySQL
- 23. ¿Base de datos vacía en MySQL y PHP?
- 24. Guardar datos en árabe en la base de datos MySQL
- 25. fila (s) afectadas en la actualización de mysql con PHP
- 26. Buscar y reemplazar en toda la base de datos mysql
- 27. Desarrollo ágil y cambios en la base de datos
- 28. Análisis de datos XML utilizando php para poner en la base de datos mysql
- 29. Php Serialize datos en Mysql
- 30. python: cómo obtener notificaciones para cambios en la base de datos mysql?
Aparentemente es posible, pero con algún tipo de complemento: http://dev.mysql.com/doc/refman/5.0/en/faqs-triggers.html#qandaitem-22-5-1-10 –