本文整理汇总了PHP中BD::rollback方法的典型用法代码示例。如果您正苦于以下问题:PHP BD::rollback方法的具体用法?PHP BD::rollback怎么用?PHP BD::rollback使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BD
的用法示例。
在下文中一共展示了BD::rollback方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: guardar
/**
* Guarda en la base de datos el album que invocó el método.
* Sólo puede guardarse si no existe en la base de datos. Si ya existe, hay que utilizar el método "actualizar".
* Es decir, si el album es nuevo, utilizarás "guardar". Si ha sido extraido de la base de datos, se utilizará "actualizar".
* @return bool Devuelve verdadero si se ha guardado correctamente. Falso en caso contrario.
*/
public function guardar()
{
$guardado = false;
if ($this->id == 0) {
try {
$conexion = BD::conectar();
// Iniciamos la transacción.
if (BD::begin($conexion)) {
$error = false;
// Extraemos el identificador del país (debería ser mayor que 0).
$id_pais = 0;
$sentencia = "select id from paises where nombre = '" . utf8_decode($this->pais) . "'";
$resultado = mysql_query($sentencia, $conexion);
if ($resultado) {
$fila = mysql_fetch_array($resultado);
if ($fila) {
$id_pais = $fila[0];
} else {
$error = true;
}
} else {
$error = true;
}
// Extraemos el identificador del usuario (debería ser mayor que 0).
$id_usuario = 0;
if ($error == false) {
$sentencia = "select id from usuarios where nombre = '" . $this->usuario . "'";
$resultado = mysql_query($sentencia, $conexion);
if ($resultado) {
$fila = mysql_fetch_array($resultado);
if ($fila) {
$id_usuario = $fila[0];
} else {
$error = true;
}
} else {
$error = true;
}
}
if ($error == false) {
// Insertamos el album.
$sentencia = "insert into albumes (titulo, descripcion, fecha, id_pais, id_usuario)";
$sentencia = "{$sentencia} values ('" . utf8_decode($this->titulo) . "', '" . utf8_decode($this->descripcion) . "', '" . $this->fecha . "', '" . $id_pais . "', '" . $id_usuario . "')";
$resultado = mysql_query($sentencia, $conexion);
if ($resultado) {
// Obtenemos el identificador asignado al album recién creado.
$sentencia = "select max(id) from albumes where id_usuario = '" . $id_usuario . "'";
$resultado = mysql_query($sentencia, $conexion);
if ($resultado) {
$fila = mysql_fetch_array($resultado);
if ($fila) {
// Asignamos el identificador al album.
if ($error == false) {
$this->id = $fila[0];
$guardado = true;
}
}
} else {
$error = true;
}
} else {
$error = true;
}
}
// Si hubo error, deshacemos la operación; si no, la cerramos.
if ($error == true) {
echo "<ENAlbum::guardar()>" . mysql_error();
BD::rollback($conexion);
} else {
BD::commit($conexion);
BD::desconectar($conexion);
}
}
} catch (Exception $e) {
echo "<ENAlbum::guardar() " . $e->getMessage();
}
}
return $guardado;
}
示例2: actualizar
/**
* Actualiza en la base de datos el usuario que invocó el método.
* Ya debe existir el usuario en la base de datos.
* @return bool Devuelve verdadero si se ha actualizado correctamente. Falso en caso contrario.
*/
public function actualizar()
{
$guardado = false;
if ($this->id > 0) {
try {
$conexion = BD::conectar();
// Iniciamos la transacción.
if (BD::begin($conexion)) {
$error = false;
// Extraemos el identificador del país (debería ser mayor que 0).
$id_pais = 0;
$sentencia = "select id from paises where nombre = '" . utf8_decode($this->pais) . "'";
$resultado = mysql_query($sentencia, $conexion);
if ($resultado) {
$fila = mysql_fetch_array($resultado);
if ($fila) {
$id_pais = $fila[0];
}
// Actualizamos el usuario.
$sentencia = "update usuarios set nombre = '" . $this->nombre . "', contrasena = '" . $this->contrasena . "', email = '" . $this->email . "', sexo = '" . $this->sexo . "', fecha_nacimiento = '" . $this->fecha_nacimiento . "', ciudad = '" . utf8_decode($this->ciudad) . "', id_pais = {$id_pais}";
$sentencia = "{$sentencia} where id = {$this->id}";
echo "<br/><br/> {$sentencia} <br/><br/>";
$resultado = mysql_query($sentencia, $conexion);
if ($resultado) {
$guardado = true;
} else {
$error = true;
}
} else {
$error = true;
}
// Si hubo error, deshacemos la operación; si no, la cerramos.
if ($error == true) {
echo "<ENUsuario::actualizar()>" . mysql_error();
BD::rollback($conexion);
} else {
BD::commit($conexion);
BD::desconectar($conexion);
}
}
} catch (Exception $e) {
echo "<ENUsuario::actualizar() " . $e->getMessage();
}
}
return $guardado;
}