miércoles, 10 de abril de 2013

Accediendo a la base de datos de Moodle

La documentación oficial de las funciones para acceder a las tablas de la base de datos de Moodle la podéis encontrar aquí: http://docs.moodle.org/dev/Data_manipulation_API.

En este post sólo voy a resumir algunas de las más comunes que son las que he tenido que usar para almacenar en una tabla los nombres de usuario en Twitter de los alumnos.

Si en un archivo vamos a acceder a alguna tabla de la base de datos, lo primero que tenemos que hacer es declarar la variable global:

global $DB;

· Insertar un registro en una tabla

$DB->insert_record($table, $dataobject, $returnid=true, $bulk=false) 

Donde $table es el nombre de la tabla donde se quiere insertar y $dataobject el objeto que contiene los datos a insertar.


· Actualizar un registro en una tabla


$DB->update_record($table, $dataobject, $bulk=false)

Donde $table es el nombre de la tabla donde se quiere insertar y $dataobject el objeto que contiene los datos a insertar con uno de los campos "id" que especifica el registro a actualizar.


· Eliminar un registro en una tabla


$DB->delete_records($table, array $conditions=null) 

Donde $table es el nombre de la tabla donde se quiere eliminar uno o más registros y $conditiones son las condiciones que cumplirán los elementos que se eliminarán.
Si quieres actualizar un registro, usa update_record, porque eliminarlo y volver a insertarlo provoca que se quede una línea en blanco en la tabla y es menos eficiente.


· Obtener registros de una tabla


$DB->get_records($table, array $conditions=null, $sort='', $fields='*', $limitfrom=0, $limitnum=0) 

Donde $table es el nombre de la tabla donde se encuentran los registros y $conditiones son las condiciones que cumplirán los elementos que se obtendrán.

Por último, decir que si es una tabla con un alto número de resgistros, es mejor usar recordsets:

$rs = $DB->get_recordset(....) {
foreach ($rs as $record) {
    // Hacer lo que quieras hacer con esos registros
}
$rs->close(); // No te olvides de cerrarlo cuando termines de trabajar con ellos



No hay comentarios:

Publicar un comentario