ThinkPHP5資料庫操作
ThinkPHP5-資料庫操作
一、資料庫配置
1、在應用目錄或者模組目錄下面的database.php中新增下面的配置引數:
return [
// 資料庫型別
'type' => 'mysql',
// 資料庫連線DSN配置
'dsn' => '',
// 伺服器地址
'hostname' => '127.0.0.1',
// 資料庫名
'database' => 'thinkphp',
// 資料庫使用者名稱
'username' => 'root' ,
// 資料庫密碼
'password' => '',
// 資料庫連線埠
'hostport' => '',
// 資料庫連線引數
'params' => [],
// 資料庫編碼預設採用utf8
'charset' => 'utf8',
// 資料庫表字首
'prefix' => 'think_',
// 資料庫除錯模式
'debug' => false,
// 資料庫部署方式:0 集中式(單一伺服器),1 分散式(主從伺服器)
'deploy' => 0,
// 資料庫讀寫是否分離 主從式有效
'rw_separate' => false,
// 讀寫分離後 主伺服器數量
'master_num' => 1,
// 指定從伺服器序號
'slave_no' => '',
// 是否嚴格檢查欄位是否存在
'fields_strict' => true,
];
2、字串方式:
Db::connect('mysql://root:[email protected]:3306/thinkphp#utf8');
資料庫型別:// 使用者名稱:密碼@資料庫地址:資料庫埠/資料庫名#字符集
二、query(查詢操作)execute(寫入操作) 原生態SQL語句 增刪改查
Db::execute("insert into t_test(username,password) values('qqq','qqq')");
Db::execute("update t_test set username ='55' where id = '10'");
Db::query('select * from t_test where id = 5');
Db::execute('delete from t_test where id = 6');
三 引數繫結 命名佔位符繫結
支援引數繫結:
Db::query('select * from think_user where id=?',[8]);
Db::execute('insert into think_user (id, name) values (?, ?)',[8,'thinkphp']);
支援佔位符繫結:
Db::query('select * from think_user where id=:id',['id'=>8]);
Db::execute('insert into think_user (id, name) values (:id, :name)',['id'=>8,'name'=>'thinkphp']);
四、查詢構造器
1、查詢資料:
(1)查詢一個數據使用:
// table方法必須指定完整的資料表名
Db::table('think_user')->where('id',1)->find();
//find 方法查詢結果不存在,返回 null
(2)查詢資料集
Db::table('think_user')->where('status',1)->select();
select 方法查詢結果不存在,返回空陣列
如果設定了資料表字首引數的話,可以使用
Db::name('user')->where('id',1)->find();
Db::name('user')->where('status',1)->select();
如果你的資料表沒有使用表字首功能,那麼name和table方法的一樣的效果。
(3)助手函式
系統提供了一個db助手函式,可以更方便的查詢:
db('user')->where('id',1)->find();
db('user')->where('status',1)->select();
2、新增資料:
(1)新增一條資料
$data = ['foo' => 'bar', 'bar' => 'foo'];
Db::table('think_user')->insert($data);
(2)新增多條資料
$data = [
['foo' => 'bar', 'bar' => 'foo'],
['foo' => 'bar1', 'bar' => 'foo1'],
['foo' => 'bar2', 'bar' => 'foo2']
];
Db::name('user')->insertAll($data);
insertAll 方法新增資料成功返回新增成功的條數
(3)助手函式
// 新增單條資料
db('user')->insert($data);
// 新增多條資料
db('user')->insertAll($list);
3、更新資料:
(1)更新資料表中的資料
Db::table('think_user')
->where('id', 1)
->update(['name' => 'thinkphp']);
(2)助手函式
// 更新資料表中的資料
db('user')->where('id',1)->update(['name' => 'thinkphp']);
// 更新某個欄位的值
db('user')->where('id',1)->setField('name','thinkphp');
// 自增 score 欄位
db('user')->where('id', 1)->setInc('score');
// 自減 score 欄位
db('user')->where('id', 1)->setDec('score');
4、刪除資料
(1)刪除資料表中// 根據主鍵刪除
Db::table(‘think_user’)->delete(1);
Db::table(‘think_user’)->delete([1,2,3]);
// 條件刪除
Db::table(‘think_user’)->where(‘id’,1)->delete();
Db::table(‘think_user’)->where(‘id’,’<’,10)->delete();助手函式
// 根據主鍵刪除
db('user')->delete(1);
// 條件刪除
db('user')->where('id',1)->delete();
五、鏈式操作
假如我們現在要查詢一個User表的滿足狀態為1的前10條記錄,並希望按照使用者的建立時間排序 ,程式碼如下:
Db::table('think_user')
->where('status',1)
->order('create_time')
->limit(10)
->select();
這裡的where、order和limit方法就被稱之為鏈式操作方法,除了select方法必須放到最後一個外(因為select方法並不是鏈式操作方法),鏈式操作的方法呼叫順序沒有先後。
相關推薦
ThinkPHP5資料庫操作
ThinkPHP5-資料庫操作 一、資料庫配置 1、在應用目錄或者模組目錄下面的database.php中新增下面的配置引數: return [ // 資料庫型別 'type' => 'mysql', // 資料
thinkphp5.0學習(七):資料庫操作
一、支援資料庫的型別 Mysql,SqlServer,pgSQL,Sqlite等資料庫的支援 二、如何連線資料庫 1.配置檔案定義 a.配置檔案目錄 專案\application\database.php b.如何配置 return [
MongoDB資料庫操作常用語法
一、建立資料庫 建立: use DATABASE_NAME(資料庫名稱) 如果資料庫不存在,則建立資料庫,否則切換到指定資料庫。 顯示所有資料庫: show dbs 剛建立的資料庫,並不在資料庫的列表中, 要顯示它,我們需要向其中插入一些資料。 插入資料: db.DATABASE_NAM
JDBC資料庫連線池連線資料庫及資料庫操作DAO層設計通用更新及查詢方法(二)
上篇文章主要介紹了通過資料庫連線池連線資料庫,然後設計了對資料庫通用更新和查詢方法,本篇文章主要通過例項介紹上篇文章定義的對資料庫操作的幾個方法的使用: 首先我們先在資料庫建立一個學生資訊表Student欄位如圖: 建立好表將配置檔案的資訊改好然後需要建立一
JDBC資料庫連線池連線資料庫及資料庫操作DAO層設計通用更新及查詢方法(一)
該篇文章介紹了資料庫連線池獲取資料庫連線以及資料庫操作的基本使用,然後主要提供了java專案案例中dao層的一種設計,利用反射的原理定義了通用的查詢方法可以對應所有的表和例項。文章中的每段程式碼都提供了詳細的註釋及邏輯步驟 首先匯入資料庫連線的所需要的jar包:
OpenStack 資料庫操作 demo
1 #!/usr/bin/env python 2 3 from sqlalchemy.orm import sessionmaker 4 from sqlalchemy import create_engine 5 from sqlalchemy.ext.declarative impor
Python - - MySQL資料庫 - - 操作錦集
注:環境配置資訊,系統環境CentOS 7.4,資料庫版本 mysql-5.7.24 1,跳過授權表 # 在命令列跳過授權表命令 mysqld_safe --skip-grant-tables & # 在 my.cnf 檔案配置跳過授權表命令 [mysqld] skip-grant-t
iOS資料庫操作
iOS的資料庫是sqlite3,是模糊型別的資料庫,但是仍然不能隨便定義資料型別 * 使用時首先匯入資料庫包,然後宣告資料庫變數:sqlite3 *db; * 開啟資料庫: NSArray *paths = NSSearchPathForDirectoriesInDomains(N
Django框架——ORM資料庫操作
目錄 一.增加 二.刪除 三.修改 四.查詢 1.基本查詢 2.過濾查詢 3.過濾條件語法 4.F物件和Q物件 5.聚合函式 6.排序函式 7.關聯查詢
Flask-SQLAlchemy資料庫操作
建表 # -*- coding: UTF-8 -*- from . import db #多對多關係表,兩組一對多,即為多對多 class Boy2Girl(db.Model): __tablename__ = 'boy2girl' nid = db.Column(db.Intege
簡單Java類和資料庫操作及javafx的結合小專案
先圖為上 秦時明月漢時關,萬里長征人未還,妙呀,甚是.. 1.開始 1.專案目的: 開發工具: Idea + Mysql + JAVASE 1.其實簡單來說就是實現兩張資料表的基本操作, 1.新增 2. 刪除 3.修改
Django—ORM資料庫操作
---恢復內容開始--- 一、orm介紹 1 ORM即Object Relational Mapping,全稱物件關係對映。 優點: 1 不用寫sql,不會sql的人也可以寫程式 2 開發效率高 2 缺點: 1 可能sql的效率低 3 如何使用:
利用c3p0的QueryRunner類封裝資料庫操作類
文章目錄 前言 1. 準備 2. 封裝資料庫連線 3. 使用QueryRunner類,實現對資料表的 insert delete update 4. 小結 前言 鑑於最近做一個小專案,想要自己封裝資料庫操作類,但是網上的各種
PYTHON自動化Day6-函式多個返回值和匿名函式、列表生成式,三元運算子,os模組,sys模組,時間模組,字典排序,資料庫操作,加密(md5)
一.函式多個返回值和匿名函式 #函式返回多個值,用一個變數接收 def say(): num1=1 num2=2 num3=3 return num1,num2,num3 res=say() print(res) #打印出來是元組。 函式如果返回多個值的話,會把返回的
設定storage模組的資料庫操作支援、新增倉儲分類列表介面(dao層)
一、在storage模組的pom檔案中加入jdbc,mybatis,mysql依賴 二、在yml檔案中加入datasource資料庫連線的四個屬性 三、在啟動類的包下新建controller,service,serviceImpl,dao,entity包並建好對應4個表的四組類
6.JAVA語言基礎部分--資料庫操作
操作資料資料流程:得到Connecnt->獲取Statement物件->執行sql語句返回ResultSet 1.通過DriverManager.getConnection(“jdbc:sqlserver://127.0.0.1:1433;DatabaseName=temp2”, "sa", "
Mybatis動態代理介面實現資料庫操作
mybatis動態代理實現資料庫的增改刪查功能和pojo包裝類對映 工程結構搭建 在工程src包下建立兩個空包,cn.mybatis.xhchen.entity和cn.mybatis.xhchen.mapper 工程中建立建立檔案集conf
Django連線mysql資料庫操作
Y12 1、建立工程 django-admin startproject django_3 2、建立app python manage.py startapp app1 3、Mysql資料庫配置 (1)啟動資料庫 1>若沒啟動,先在管理員模式下直接啟動mysql:
flask連線mysql資料庫操作增刪改查的簡單封裝函式
Y17 1、建立python資料夾,命名為app,建立並返回一個WGSI應用程式物件 from flask import Flask app = Flask(__name__) # 定義函式封裝路由配置 def path(route, fun, *, methods=['GE
Redis資料庫操作
import redis pool=redis.ConnectionPool(host='127.0.0.1',port=6379,decode_responses=True) r=redis.Redis(connection_pool=pool) # set測試 # r.sadd('test_