Un trigger (o disparador) en una Base de datos, es un procedimiento
que se ejecuta cuando se cumple una condición establecida al realizar
una operación. Dependiendo de la base de datos, los triggers pueden ser
de inserción (INSERT), actualización (UPDATE) o borrado (DELETE).
Algunas bases de datos pueden ejecutar triggers al crear, borrar o
editar usuarios, tablas, bases de datos u otros objetos.
En este caso la funcionalidad será el insertar un id de un registro borrado en otra tabla de la base de datos, para poder hacer un historial de todo lo que se ha borrado, vamos al código.
/////////// Creación de trigger///////////////
CREATE TRIGGER (Nombre del trigger sin parentesis) BEFORE DELETE
ON tabla_del_registro_que_se_borra
FOR EACH ROW
Insert Into tabla (id_campo,id_campo_foraneo)
Values ('', old.id_de_la_otra_tabla) ;
////////////////////////////////////////////////////////////////////////////////
Una vez ejecutado habremos creado el trigger, y al borrar un registro de la tabla_del_registro_que_se_borra se insertara un registro el la tabla tabla
miércoles, 5 de junio de 2013
martes, 4 de junio de 2013
Actualización de un registro en PHP 5 POO
<?php
// Incluimos la clase Conectar, hecha en anteriores entradas
include_once("Conectar.php");
Creamos una clase cualquiera
class NombreClase
{
//Creamos el método actualizar
public function actualizar($id)
{
$sql = "UPDATE tabla SET CampoTabla='Valor'
where id='$id'";
$res=mysql_query($sql,Conectar::con());
return $res;
}
?>
Este código por sí solo no hace nada, tendremos que hacer una instancia de la clase y la llamada al método actualiazr pasandole como parámetro el id:
<?php
// Creamos la instancia
$mdf = New NombreClase;
// Ejecutamos el método
$mdf ->actualizar("5");
?>
// Incluimos la clase Conectar, hecha en anteriores entradas
include_once("Conectar.php");
Creamos una clase cualquiera
class NombreClase
{
//Creamos el método actualizar
public function actualizar($id)
{
$sql = "UPDATE tabla SET CampoTabla='Valor'
where id='$id'";
$res=mysql_query($sql,Conectar::con());
return $res;
}
?>
Este código por sí solo no hace nada, tendremos que hacer una instancia de la clase y la llamada al método actualiazr pasandole como parámetro el id:
<?php
// Creamos la instancia
$mdf = New NombreClase;
// Ejecutamos el método
$mdf ->actualizar("5");
?>
Eliminación de un registro de la base de datos en PHP 5 POO
<?php
// Incluimos la clase Conectar, hecha en anteriores entradas
include_once("Conectar.php");
Creamos una clase cualquiera
class NombreClase
{
//Creamos el método eliminar
Public function eliminar_registro($id)
{
$sql = "Delete From tabla Where id='$id'";
$res=mysql_query($sql,Conectar::con());
Return $res;
}
?>
Este código por sí solo no hace nada, tendremos que hacer una instancia de la clase y la llamada al método eliminar pasandole como parámetro el id:
<?php
// Creamos la instancia
$elm = New NombreClase;
// Ejecutamos el método
$elm ->eliminar_registro("5");
?>
// Incluimos la clase Conectar, hecha en anteriores entradas
include_once("Conectar.php");
Creamos una clase cualquiera
class NombreClase
{
//Creamos el método eliminar
Public function eliminar_registro($id)
{
$sql = "Delete From tabla Where id='$id'";
$res=mysql_query($sql,Conectar::con());
Return $res;
}
?>
Este código por sí solo no hace nada, tendremos que hacer una instancia de la clase y la llamada al método eliminar pasandole como parámetro el id:
<?php
// Creamos la instancia
$elm = New NombreClase;
// Ejecutamos el método
$elm ->eliminar_registro("5");
?>
lunes, 3 de junio de 2013
Gestión de usuarios desde consola
Gestión de usuarios desde consola
Crear usuarios locales y remotos:
- Verificar los usuarios que existen dados de alta
c:\> mysql -u root -p
mysql> SELECT user FROM mysql.user;
- Crear un usuario profesor local con todos los privilegios en una BD determinada:
mysql> GRANT ALL PRIVILEGES ON db.* TO ‘usuario‘@’host‘
IDENTIFIED BY ‘contraseña‘ WITH GRANT OPTION;
- Crear un usuario profesor local con todos los privilegios en todas las BDs:
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘usuario‘@’host‘
IDENTIFIED BY ‘contraseña‘ WITH GRANT OPTION;
- Crear un usuario con ciertos privilegios
mysql> GRANT privilegio1 [, privilegio2 ...] ON db.* TO ‘usuario‘@’host‘ IDENTIFIED BY ‘password‘;
Privilegios:
- ALTER: Modificar tablas con ALTER TABLE
- CREATE: Crear una nueva BD o tabla
- DELETE: Eliminar registros de las tablas
- DROP: Eliminar BD o tablas
- INDEX: Crear o eliminar índices
- INSERT: Crear registros en las tablas
- SELECT: Listar registros de las tablas
- UPDATE: Modificar registros de las tablas
- Listar privilegios para un usuario USUARIO desde una dirección HOST
mysql> GRANTS FOR ‘USUARIO’@’HOST’;
- Eliminar/quitar privilegios para un usuario USUARIO desde una dirección HOST para una base de datos DB
mysql> REVOKE privilegio1 [, privilegio2 ...] ON db.* FROM ‘usuario‘@’host;
- Eliminar un usuario desde una dirección de HOST
mysql> DROP USER ‘USUARIO’@’HOST’
- Cambiar contraseña a un usuario desde una dirección host
mysql> SET PASSWORD FOR ‘usuario’@’host’ = PASSWORD(‘contraseña’);
Para finalizar el ejercicio vamos a crear una base de datos prueba, con unas tablas. Vamos a crear un usuario prueba que tenga permisos para ver solo 1 de las tablas. Cerrar la sesión de consola en mysql y abrirla de nuevo con este nuevo usuario. Comprobad la visibilidad del nuevo usuario.
Avanzado:
Para conectar desde un equipo remoto mediante consola ejecutaremos:
mysql -h nombrehost|ip -u usuario -p
domingo, 2 de junio de 2013
Conseguir fecha actual php
Conseguimos la fecha actual del sistema con la funcion date:
<?php
$fecha = date("Y-m-d");
echo $fecha;
?>
<?php
$fecha = date("Y-m-d");
echo $fecha;
?>
Copiar una base de datos mysql desde php
Con este script vamos copiar una base de datos para tener los datos duplicados en caso de desgracia
<?php
// Cambie el Origen & Destino de Base de Datos
$source_db="db1";
$new_db="db2";
mysql_connect("localhost","root","");
mysql_select_db($source_db);
$result=mysql_query("show tables");
$table_names=array();
while($row=mysql_fetch_array($result)){
$table_names[]=$row[0];
}
mysql_query("create database $new_db");
mysql_select_db($new_db);
for($i=0;$i<count($table_names);$i++){
mysql_query("create table ".$table_names[$i]."
select * from $source_db.".$table_names[$i]);
}
echo count($table_names)." tablas correctamente copiadas!";
?>
Conexion a base de datos mediante una clase estática php
Aquí vemos como hacer una clase para poder realizar una conexión a nuestra base de datos en php5 , con solo hacer un include de la clase ya tendríamos la conexión inicializada .
<?php
class Conectar
{
public static function con()
{
$conexion=mysql_connect("TuServidor","tuUSuario","Tupassword");
mysql_query("SET NAMES 'utf8'");
mysql_select_db("Tu base de datos");
return $conexion;
}
}
?>
<?php
class Conectar
{
public static function con()
{
$conexion=mysql_connect("TuServidor","tuUSuario","Tupassword");
mysql_query("SET NAMES 'utf8'");
mysql_select_db("Tu base de datos");
return $conexion;
}
}
?>
Suscribirse a:
Entradas (Atom)