idiorm常用方法大全
本文地址:http://tongxinmao.com/Article/Detail/id/25
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | 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 编码解码
下一篇:移动联通电信运营商手机号段分配