k2 / activerecord
此包已被弃用且不再维护。未建议替代包。
KumbiaPHP K2版本的Active Record,支持PHP 5.3或更高版本,并需要PDO。
dev-master
2013-05-28 22:47 UTC
Requires
- k2/event-dispatcher: dev-master
This package is auto-updated.
Last update: 2022-02-01 12:22:51 UTC
README
Active Record para K2,支持PHP 5.3或更高版本,并需要PDO。
虽然这是一个旨在为K2框架提供数据库抽象层的库,但此版本也可以用于任何PHP项目。
目前它没有自己的自动加载器,因此为了使用它,必须在符合PSR-0规范的任何自动加载器中注册库的路径。
配置
数据库连接配置
<?php use ActiveRecord\Config\Config; use ActiveRecord\Config\Parameters; Config::add(new Parameters("default", array( 'username' => 'root', 'password' => 'contraseña', 'host' => 'localhost', //por defecto localhost 'type' => 'mysql', 'port' => '3306', //si no se especifica se usa el puerto por defecto del gestor de base de datos usado. 'name' => 'nombre_base_de_datos', ))); ?>
通过以下简单步骤,我们已经配置了数据库连接。
创建模型
<?php use ActiveRecord\Model; class Usuarios extends Model { } ?>
现在我们的用户类具有访问和与数据库通信的所有基本方法。默认情况下,表名是模型的小写命名约定,但如果无法满足转换,可以通过重写模型的initialize方法来指定表名,例如
<?php use ActiveRecord\Model; class Usuarios extends Model { protected function initialize() { static::table('usuarios'); } } ?>
查询记录
此库提供了一系列方法用于执行对数据库的查询,以下是一些示例
<?php //Consultando todos los registros en la tabla. //Devuelve todos los registros de la tabla en la base de datos $usuarios = Usuarios::findAll(); foreach($usuarios as $usuario){ //Cada elemento iterado en el foreach es un objeto Usuarios echo $usuario->nombres; } //Obteniendo el resultados como una matriz //Devuelve todos los registros de la tabla en la base de datos como un arreglo. $usuarios = Usuarios::findAll("array"); foreach($usuarios as $usuario){ //Cada elemento iterado en el foreach es un arreglo echo $e["nombres"]; } ?>
过滤查询
为了过滤查询,Active Record提供了一个DbQuery类,它允许我们以面向对象的方式构建SQL查询。
<?php //El metodo createQuery() crea y nos devuelve una instancia de DbQuery Usuarios::createQuery() ->where("nombres = :nom") ->bindValue("nom", "Manuel José") ;//->findAll(); //podemos llamar a findAll desde el DbQuery ó hacerlo desde la clase. //ya que el active record trabaja con PDO, y este permite crear consultas preparadas, es decir, los valores //de variables no se colocan directamente en la cadena de consulta, sino que se pasan a traves de métodos //de la clase PDO, que se encargan de filtrar y sanitizar los valores de la consulta, el DbQuery permite establecer //estos valores directamente en su clase a través de los métodos bindValue($param,$value) y bind($params). $usuarios = Usuarios::findAll(); //aunque llamemos al mismo metodo findAll, esté va a filtrar los datos por medio de //las especificaciones indicadas en la instancia del DbQuery. //mostramos los registros que nos devolvió la consulta: foreach($usuarios as $usuario){ //Cada elemento iterado en el foreach es un objeto Usuarios echo $usuario->nombres; } ?>