注册会员
×

已有账号? 请点击

使用其他方式登录

kohana框架DB常用操作方法详情-增册改查

发布2021-12-11 浏览182次

详情内容

kohana框架DB操作方法详情,涉及到DB::select,DB::update, DB::delete和链表等常用操作数据方法

一.读取数据库记录  读取数据库记录需要使用到 DB::select() 方法

// 返回一个结果对象

  $result = DB::select('column')->from('table_name')->execute();
 

  // 结果作为数组返回

  $result = DB::select('column')->from('table_name')->execute()->as_array();


  // 结果作为标准类对象返回s

  $result = DB::select('column')->from('table_name')->as_object()->execute();


  // 仅返回第一行

  $result = DB::select('column')->from('table_name')->execute()->current();

你可以按你所需要的在上面的示例中选择一个方法。

  // 返回一个列

  $result = DB::select('column')->from('table_name')->execute()->current();

 

  //返回3列

  $result = DB::select('column', 'column2', 'column3')->from('table_name')->execute()->current();

 
  // 列名的别名

  $result = DB::select(array('longcolumnname1', 'col1'), array('longcolumnname2', 'aliascol2'))->from('table_name')->execute()->current();

你可以用 where() 方法来选择特定的记录

$result = DB::select()->from('table_name')->where('column','=','value')->execute();

二,在直接写SQL方式的增删改查:

1.直接写sql语句方式:

1).查询:

$qu_relation_sql="select * from alipay_account where status = 1";
$totlemoney = DB::query(Database::SELECT, $qu_relation_sql)->execute('alipay')->current();

2).修改:

$qu_relation_sql="update alipay_account set  totlemoney='$new_totlemoney' WHERE openid='" . $openid['openid'] . "' ";

$totlemoney = DB::query(Database::UPDATE, $qu_relation_sql)->execute('alipay');

3).删除:

$totlemoney = DB::query(Database::DELETE, $qu_relation_sql)->execute('alipay');

4)添加:

$sql_bankinfo = " INSERT INTO `wp_bankinfo`( `openid`, `bank`, `name`, `bankcard`, `mobile`) VALUES ('" . $openid['openid'] . "','" . $_GET['bank'] . "','" . $_GET['card_name'] . "','" . $_GET['bank_num'] . "','" . $_GET['mobile'] . "') ";

$insert_id = DB::query(Database::INSERT, $sql_bankinfo)->execute('weixin');
2,不写sql语句:(alipay_account:表名    alipay:库名)

1).查询:上面第一读取数据库上有。

2).删除:DB::delete('alipay_account')->where('status','=',3)->execute('alipay');

3)修改:DB::update('pages')

              ->set(array('views' => DB::expr('views + 1')))

              ->where('id', '=', 1)

              ->execute();

4)增加:DB::insert('alipay_account')

    ->columns(array_keys($in_account))
    ->values(array_values($in_account))
    ->execute('alipay');

三,数据表链表join

// This query will find all the posts related to "smith" with JOIN
$query = DB::select('authors.name', 'posts.content')->from('authors')->join('posts')->on('authors.id', '=', 'posts.author_id')->where('authors.name', '=', 'smith');
// This query will find all the posts related to "smith" with LEFT JOIN
$query = DB::select()->from('authors')->join('posts', 'LEFT')->on('authors.id', '=', 'posts.author_id')->where('authors.name', '=', 'smith');


$query = DB::select('username', array('COUNT("id")', 'total_posts')
    ->from('posts')->group_by('username')->having('total_posts', '>=', 10);
SELECT `username`, COUNT(`id`) AS `total_posts` FROM `posts` GROUP BY `username` HAVING `total_posts` >= 10

$sub = DB::select('username', array('COUNT("id")', 'total_posts')
    ->from('posts')->group_by('username')->having('total_posts', '>=', 10);
 
$query = DB::select('profiles.*', 'posts.total_posts')->from('profiles')
    ->join(array($sub, 'posts'), 'INNER')->on('profiles.username', '=', 'posts.username');
INSERT INTO `post_totals` (`username`, `posts`) 
SELECT `username`, COUNT(`id`) AS `total_posts` FROM `posts` GROUP BY `username` HAVING `total_posts` >= 10 

$query = DB::select()->from('users')
    ->where_open()
        ->or_where('id', 'IN', $expired)
        ->and_where_open()
            ->where('last_login', 'or_where('last_login', 'IS', NULL)
        ->and_where_close()
    ->where_close()
    ->and_where('removed','IS', NULL);
SELECT * FROM `users` WHERE ( `id` IN (1, 2, 3, 5) OR ( `last_login` set(array('login_count' => DB::expr('login_count + 1')))->where('id', '=', $id);
UPDATE `users` SET `login_count` = `login_count` + 1 WHERE `id` = 45


点击QQ咨询
开通会员
返回顶部
×
  • 微信支付
  • 支付宝付款
微信扫码支付
微信扫码支付
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载