jueves, noviembre 30, 2006

Habilitar INNODB en XAMPP

Para trabajar con transacciones con php y mysql en el ambiente xampp, se tiene que habilitar el soporte para base de datos innodb, esto lo logramos modificando el archivo my.cnf de mysql. Este archivo se encuentra en la siguiente ubicación:

Linux:
/opt/lampp/etc/my.cnf
Windows
C:\apachefriends\xampp\mysql\bin\my.cnf
ó
C:\Archivos de programa\xampp\mysql\bin\my.cnf
ubicaciones default de la instalación.

En el archivo debemos comentar la siguiente linea
skip-innodb
y descomentar las siguientes
#innodb_data_home_dir = C:/apachefriends/xampp/mysql/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = C:/apachefriends/xampp/mysql/
#innodb_log_arch_dir = C:/apachefriends/xampp/mysql/
luego grabamos y reiniciamos el servicio.

miércoles, noviembre 29, 2006

Música

* Radio de heavy metal

Deportes

* Después del clásico

* Se cae el teatro

* Se complica el Barcelona

GNU/Linux

* Aún mas espectacular

* XGL lo nuevo en escritorios

* Ubuntu Edgy Eft Liberado

Programación

* Transacciones en PHP y MySQL


* Habilitar INNODB en XAMMP


* Problema de hora incorrecta en PHP

Transacciones en PHP y MySQL

Esto no es nada nuevo, pero me gustaría postearlo aquí debido a que me acaba de servir y estas son dos herramientas muy utilizadas a nivel mundial.

Primero que todo necesitamos contar con los servidores (php y mysql) instalados previamente. Luego necesitamos habilitar el soporte INNODB en mysql, ver en este post.

Es importante saber que las transacciones son soportadas solo para las tablas tipo innodb, así que necesitamos crear las tablas o modificarlas con éste tipo. Esto se logra fácilmente con el atributo ENGINE = INNODB.

Aquí esta el código para hacerlo.
Crear:
CREATE TABLE tabla ... ENGINE = INNODB;
Modificar:
ALTER TABLE tabla ENGINE = INNODB;
No hay que preocuparse con los datos en la modificación ya que no sufren alteraciones.

Luego ya en el código de php tendremos algo como lo siguiente:

$SERVIDOR="TuHost";
$BASE_DATOS="TuBaseDeDatos";
$USUARIO="TuUsuario";
$PASSWORD="TuPassword";

$db = mysql_connect($SERVIDOR,$USUARIO,$PASSWORD);
mysql_select_db($BASE_DATOS,$db);

$error = 0; //variable para detectar error

mysql_query("BEGIN"); // Inicio de Transacción

$result=mysql_query("INSERT INTO tabla1 VALUES (1,1000)");

if(!$result)
$error=1;

$result=mysql_query("INSERT INTO tabla2 VALUES (1,2000)");

if(!$result)
$error=1;

if($error) {
mysql_query("ROLLBACK");
echo "Error en la transaccion";
} else {
mysql_query("COMMIT");
echo "Transacción exitosa";
}

En el código anterior se ven 2 inserciones que se realizarán (COMMIT) si no ocurre ningún error en las dos, en caso contrario se regresarán sus valores anteriores (ROLLBACK).

Bueno espero que les sirva y si tienen alguna duda ya saben; pongan su comentario.

domingo, noviembre 26, 2006

Aún mas espectacular

Para los que pensaban que XGL con Compiz era suficiente, aqui les dejo lo nuevo con Beryl 3D flying

Y si un video no es suficiente para convencerte aquí les dejo otro

Y después de esta muestrita quien se quiere mudar a Windows Vista jajajaja.

sábado, noviembre 11, 2006

XGL lo nuevo en escritorios

Para los que no hallan visto aún el sistema xgl aqui les dejo una demo que muestra los avances que linux ha tenido en su interfaz gráfica.

domingo, noviembre 05, 2006

Se cae el teatro

Después de los buenos resultados del Real Madrid en las jornadas anteriores con un juego dudoso y con mucha fortuna, se hace visible la crisis de buen futbol por la que atraviesa el equipo. El Celta de Vigo (hasta entonces décimo en la tabla) le ganó en su casa dejándolo en la cuarta posición junto con el Valencia