idiorm常用方法大全
本文地址:http://dsyn.tongxinmao.com/Article/Detail/id/25
ORM::configure('sqlite:./example.db');
ORM::configure('mysql:host=localhost;dbname=my_database');
ORM::configure('username', 'database_user');
ORM::configure('password', 'top_secret');
ORM::configure('driver_options', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
ORM::configure('logging', false);
ORM::configure('logger', function($log_string, $query_time) {
echo $log_string . ' in ' . $query_time;
});
多连接:
// A named connection, where 'remote' is an arbitrary key name
ORM::configure('mysql:host=localhost;dbname=my_database', null, 'remote');
ORM::configure('username', 'database_user', 'remote');
ORM::configure('password', 'top_secret', 'remote');
$person = ORM::for_table('different_person', 'remote')->find_one(5);
ORM::configure('return_result_sets', true);
ORM::configure('id_column', 'primary_key');
ORM::configure('id_column', array('pk_1', 'pk_2'));
ORM::configure('id_column_overrides', array(
'person' => 'person_id',
'role' => 'role_id',));
You must enable logging for this setting to have any effect:
ORM::get_last_query()
ORM::get_query_log()
$dbh=ORM::get_db();
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->exec('
CREATE TABLE tally(
QID varchar(32) NOT NULL,
AID integer NOT NULL,
votes integer NOT NULL,
PRIMARY KEY(QID,AID)
)');
$person = ORM::for_table('person')->where('name', 'Fred Bloggs')->find_one();
$person = ORM::for_table('person')->find_one(5);
$person = ORM::for_table('user_role')->find_one(array(
'user_id' => 34,
'role_id' => 10
));
$people = ORM::for_table('person')->find_many();
$females = ORM::for_table('person')->where('gender', 'female')->find_array();
$number_of_people = ORM::for_table('person')->count();
ORM::for_table('person')->find_result_set()
->set('age', 50)
->save();
foreach(ORM::for_table('person')->find_result_set() as $record) {
echo $record->name;
}
Less than: $people = ORM::for_table('person')->where_lt('age', 10)->find_many();
Greater than: $people = ORM::for_table('person')->where_gt('age', 5)->find_many();
Less than or equal: $people = ORM::for_table('person')->where_lte('age', 10)->find_many();
Greater than or equal: $people = ORM::for_table('person')->where_gte('age', 5)->find_many();
where_id_is
where_id_in
where_null and where_not_null
where_raw('(`age` = ? OR `age` = ?)', array(20, 25))
$people = ORM::for_table('person')->where_like('name', '%fred%')->find_many();
$people = ORM::for_table('person')->where_not_like('name', '%bob%')->find_many();
$people = ORM::for_table('person')
->where_any_is(array(
array('name' => 'Joe', 'age' => 10),
array('name' => 'Fred', 'age' => 20)))
->find_many();
// Creates SQL:
SELECT * FROM `widget` WHERE (( `name` = 'Joe' AND `age` = '10' ) OR ( `name` = 'Fred' AND `age` = '20' ));
$people = ORM::for_table('person')->where_in('name', array('Fred', 'Joe', 'John'))->find_many();
order_by_asc('name') order_by_desc order_by_expr('SOUNDEX(`name`)')
group_by('name') group_by_expr("FROM_UNIXTIME(`time`, '%Y-%m')")
limit(5)->offset(10)
$people = ORM::for_table('person')->group_by('name')->having_not_like('name', '%bob%')->find_many();
$people = ORM::for_table('person')->select('name')->select('age')->find_many();
select('name', 'person_name') select_expr('COUNT(*)', 'count')
select_many(array('first_name' => 'name'), 'age', 'height')
select_expr('NOW()', 'timestamp')
$distinct_names = ORM::for_table('person')->distinct()->select('name')->find_many();
join, inner_join, left_outer_join, right_outer_join, full_outer_join
$results = ORM::for_table('person')->join('person_profile', array('person.id', '=', 'person_profile.person_id'))->find_many();
join('person_profile', 'person.id = person_profile.person_id')
raw_join(
'JOIN (SELECT * FROM role WHERE role.name = ?)',
array('person.role_id', '=', 'role.id'),
'role',
array('role' => 'janitor'))
->min('height'); MIN, AVG, MAX and SUM
$people = ORM::for_table('person')->raw_query('SELECT p.* FROM person p JOIN role r ON p.role_id = r.id WHERE r.name = :role', array('role' => 'janitor'))->find_many();
//join只取部分字段
$results = ORM::for_table('person')
->table_alias('p1')
->select('p1.*')
->select('p2.name', 'parent_name')
->join('person', array('p1.parent', '=', 'p2.id'), 'p2')
->find_many();
$person = ORM::for_table('person')->create();
// Returns array('first_name' => 'Fred', 'surname' => 'Bloggs', 'age' => 50)
$data = $person->as_array();
// Returns array('first_name' => 'Fred', 'age' => 50)
$data = $person->as_array('first_name', 'age');
$person->set_expr('updated', 'NOW()');
$person->save();
$person->id(); //
$name_has_changed = $person->is_dirty('name');
$person->delete();
->where_equal('zipcode', 55555)
->delete_many();
->id();
ORM::get_db()->beginTransaction();
// Commit a transaction
ORM::get_db()->commit();
// Roll back a transaction
ORM::get_db()->rollBack();
//private$people = ORM::for_table('person')->('SELECT p.* FROM person )if (ORM::raw_execute('DROP TABLE my_table')) {
echo "Table dropped";
} else {
echo "Drop query failed";
}
上一篇:JavaScript base64 编码解码
下一篇:移动联通电信运营商手机号段分配