Pangkalan data ThinkPHP6.0




ThinkPHP6 pangkalan data

  • ThinkPHP6 pangkalan data dan operasi model telah bebas kerana perpustakaan ThinkORMThinkORM库

  • 要使用Db类必须使用门面方式( thinkfacadeDb )调用

  • 数据库操作统一入口: Db::

    anda mesti menggunakan kaedah D
thinkfacadeDb < /code>) Panggil

pintu masuk bersatu untuk operasi pangkalan data: Db::

1. Perisian pengurusan pangkalan data

1, phpMyAdmin (pengurusan pangkalan data halaman web)

2, Navicat untuk MySql (pengurusan pangkalan data perisian tetingkap)

2 Cipta pangkalan data

1 jadual Pentadbir

BUAT JADUAL `shop_admin` (

`UID` CATATAN CATATAN CATATAN 10. ',

` akaun` varchar(50) BUKAN NULL ULASAN 'Akaun',

`kata laluan` char(32) BUKAN NULL ULASAN 'Kata Laluan',

`nama` varchar(50) BUKAN NULL ULASAN 'Nama' . `)

) ENJIN=InnoDB AUTO_INCREMENT=2 CHARSET lalai=utf8mb4 ULASAN='Pentadbir Belakang';


MASUKKAN KE DALAM NILAI `shop_admin` (1, 'ouyangke1900', 'ouyangke1500' 883e', 'ouyangke', 1, .
.

) ENJIN =MyISAM AUTO_INCREMENT=8 CHARSET LALAI=utf8mb4 COMMENT='Jadual Klasifikasi';

MASUKKAN KE DALAM NILAI `shop_cat` (1, 'Value `CAT ` MASUK 1); (2, 'Pakaian lelaki' ', 1);

MASUKKAN KE DALAM NILAI `kucing_kedai` (3, 'Bersalin', 1);

MASUKKAN KE DALAM NILAI `kucing_kedai` (4, 'Pakaian Kanak-kanak', 1);

MASUKKAN KE DALAM NILAI `shop_cat` (5, 'TV', 1);

MASUKKAN KE DALAM NILAI `shop_cat` (6, 'Telefon bimbit', 1);

MASUKKAN KE DALAM NILAI `shop_cat` (7, 'Komputer' , 1);


3 , Jadual produk

BUAT JADUAL `barang_kedai` (

`id` int(10) tidak ditandatangani BUKAN NULL AUTO_INCREMENT KOMEN ' ID produk kucing',

`

TIDAK ditandatangani NULL ULASAN '1' ULASAN 'ID Pengelasan',

`tajuk` varchar(200) BUKAN NULL ULASAN 'Tajuk produk',

`harga` dua kali ganda(10,2) tidak ditandatangani BUKAN NULL ULASAN 'Harga',

diskaun` tinyint(1) tidak ditandatangani NOT NULL DEFAULT '0' ULASAN 'Diskaun',

. add_time` int(10) tidak ditandatangani BUKAN NULL ULASAN 'Tambah masa',

KUNCI UTAMA (`id`)

) ENJIN=MyISAM AUTO_INCREMENT=20 CARSET LALAI=utf8mb4 KOMEN='Jadual produk';

KE DALAM NILAI `barang_kedai` (1, 1, 'Skirt dongeng cahaya awan, skirt panjang pinggang manik mewah, pakaian tanpa lengan yang elegan', 279.99, 0, 1100, 1, 1576080000);

MASUKKAN KE DALAM `barang_kedai` 2, 1, 'Cool Royal Sister Style Corduroy A-Line Dress Wanita Musim Gugur dan Musim Sejuk 2019 Skirt Retro Slimming Pinggang Baharu', 255.90, 0, 100, 1, 1576080000);

4 shop_menu` (

`id` int(10) unsigned NOT NULL AUTO_INNCREMENT ULASAN 'ID',

`title` varchar(50) NOT NULL COMMENT 'menu name',

`fid` int(10) NOT NULL COMMENT 'ID Ibu Bapa',

`status` tinyint(1) unsigned NOT NULL DEFAULT '1' ULASAN 'Status 1 on 2 off',

KUNCI UTAMA (`id`)

) ENGINE=MYISAM AUTOSET_INNCREMENT CREMENT=13 =utf8mb4 KOMEN='Jadual menu kiri';

MASUKKAN KE DALAM `menu_kedai` NILAI (1, 'Pengurusan produk', 0, 1);

MASUKKAN KE DALAM `menu_kedai` NILAI (2, Senarai 'Pengurusan produk' ', 1, 1);

MASUKKAN KE DALAM `menu_kedai` NILAI (3, 'Kategori Produk', 1, 1);

MASUKKAN KE DALAM `menu_kedai` NILAI (4, 'Pengurusan Pengguna', 0, 1);

MASUKKAN KE DALAM NILAI `menu_kedai` (5, 'Senarai Pengguna', 4, 1);


MASUKKAN KE DALAM NILAI `menu_kedai` (6, 'Keranjang Belanja', 4, 1);

MASUKKAN KE DALAM NILAI `menu_kedai` ( 7, 'Alamat pengguna', 4, 1);

MASUKKAN KE `menu_kedai` NILAI (8, 'Pengurusan pesanan', 4, 1);

MASUKKAN KE DALAM `menu_kedai` NILAI (9, 'Pengurusan belakang', 0 , 1);

MASUKKAN KE DALAM `menu_kedai` NILAI (10, 'Senarai Pentadbir', 9, 1);

MASUKKAN KE DALAM `menu_kedai` NILAI (11, 'Pusat Peribadi', 9, 1);

MASUKKAN KE DALAM `shop_menu` NILAI (12, 'Menu kiri', 9, 1);

3 Laksanakan MySql asli

1 Kaedah query digunakan untuk melaksanakan operasi pertanyaan MySql

. indeks fungsi(){

$query = Db::query("SELECT * FROM `shop_goods` where status=1");

print_r($query);

}

2、laksanakan < /code>Kaedah ini digunakan untuk melaksanakan operasi baharu dan diubah suai MySqlquery 方法用于执行 MySql 查询操作

public function index(){

    $query = Db::query("SELECT * FROM `shop_goods` where status=1");

    print_r($query);

}

2、execute

indeks fungsi awam(){

$execute = Db::execute("INSERT INTO `shop_goods` NILAI (3, 1, '2019 Autumn and Winter Fesyen Baharu Kasmir tulen ringkas menebal skirt panjang kasmir leher bulat, pakaian ramping dan elegan untuk wanita, 1179.00, 0, 200, 1, 1576080000");

print_r($execute);

$execute = Db::execute("KEMASKINI set `barang_kedai` `harga`='1100' di mana `id`=3 ");

print_r($execute);

}

IV 1. Carian data tunggal cari

    cari hasil pertanyaan kaedah tidak wujud, mengembalikan null, jika tidak mengembalikan tatasusunan hasil
  • find 方法查询结果不存在,返回 null,否则返回结果数组

public function index(){

    $find = Db::table('shop_goods')->find(5);

    print_r($find);

}

2、多条数据查询 select

  • select 方法查询结果是一个二维数组,如果结果不存在,返回空数组

public function index(){

    $select = Db::table('shop_goods')->select();

    print_r($select);

}

3、查询某个字段的值 value

  • value 方法查询结果不存在,返回 null

public function index(){

    $value = Db::table('shop_goods')->value('title');

    print_r($value);

}

4、查询某一列的值 column

  • column 方法查询结果不存在,返回空数组

public function index(){

    $column = Db::table('shop_goods')->column('title');

    print_r($column);

    $column = Db::table('shop_goods')->column('title','id');

    print_r($column);

}

五、添加

1、添加一条数据 insert

  • insert 方法添加数据成功返回添加成功的条数,通常情况返回 1

public function index(){

    $data = ['cat'=>'1','title'=>'日系小浪漫与温暖羊毛针织拼接网纱百褶中长收腰连衣裙','price'=>'1598.35','add_time'=>1576080000];

    $insert = Db::table('shop_goods')->insert($data);

    print_r($insert);

}

2、添加一条数据 insertGetId

  • insertGetId

    indeks fungsi awam(){
​ $find = Db: :table('shop_goods')->find(5);


print_r($find);

}

🎜🎜2 pilih pertanyaan data berbilang🎜🎜🎜🎜pilih pertanyaan kaedah Hasilnya ialah tatasusunan dua dimensi Jika hasilnya tidak wujud, tatasusunan kosong dikembalikan 🎜🎜🎜🎜🎜indeks fungsi awam(){🎜🎜 $select = Db::table('shop_goods')-. >select();🎜🎜 print_r ($select);🎜🎜}🎜🎜🎜3 Pertanyaan nilai medan tertentu🎜🎜🎜🎜nilai hasil pertanyaan kaedah tidak wujud dan kembali. null🎜🎜🎜🎜🎜indeks fungsi awam() {🎜🎜🎜 $value = Db::table('shop_goods')->value('title');🎜🎜 print_r($value);🎜🎜}🎜 🎜4. Soal nilai lajur🎜🎜 🎜🎜lajur hasil pertanyaan kaedah tidak wujud dan mengembalikan tatasusunan kosong🎜🎜🎜🎜🎜 indeks fungsi awam(){🎜🎜n🎜 $colum Db::jadual('barang_kedai')->lajur( 'tajuk');🎜🎜 print_r($lajur);🎜🎜 $lajur = Db::jadual('barang_kedai')->lajur('tajuk', 'id');🎜🎜 print_r($column);🎜 🎜}🎜🎜🎜 5. Tambah 🎜🎜1. Tambah sekeping data sisipan🎜🎜🎜🎜masukkan dan kaedah itu berjaya menambah data. mengembalikan bilangan item yang berjaya ditambahkan. Biasanya, ia mengembalikan 1🎜🎜🎜🎜🎜🎜 indeks fungsi awam(){🎜🎜🎜 $data = ['cat'=>'1','title'=>'Japanese pakaian dikait splicing mesh berlipat pertengahan panjang bulu romantik dan hangat','harga '=>'1598.35','add_time'=>1576080000];🎜🎜 $insert = Db::table('shop_goods')-> ;insert($data);🎜🎜 print_r($insert);🎜🎜 }🎜🎜🎜2. Tambah sekeping data insertGetId🎜🎜🎜🎜insertGetId Kaedah ini berjaya menambah data. -kunci utama penambahan data🎜🎜🎜🎜🎜🎜indeks fungsi awam(){🎜🎜🎜​ $data = ['cat'=>'1','title'=>'Pakaian sweater rajutan musim luruh 2019 dan musim sejuk gaya baharu bulu longgar berlengan panjang skirt bawah kasual pertengahan panjang untuk wanita','price'=>'690.00', 'add_time'=>1576080000];🎜

$insert = Db::table('shop_goods')->insertGetId($data);

print_r($insert);

}

3. Tambahkan berbilang keping data insertAll

  • > Kaedah insertAll berjaya menambah data dan mengembalikan bilangan item yang berjaya ditambahkan insertAll 方法添加数据成功返回添加成功的条数

public function index(){

    $data = [

        ['cat'=>'1','title'=>'秋冬加厚连衣裙女超长款宽松羊绒衫高领套头过膝毛衣百搭针织长裙','price'=>'658.00','add_time'=>1576080000],

        ['cat'=>'1','title'=>'2019新款秋冬慵懒风宽松毛衣针织连衣裙复古港味网红两件套','price'=>'408.00','add_time'=>1576080000],

        ['cat'=>'2','title'=>'男士长袖t恤秋季圆领黑白体恤T 纯色上衣服打底衫男装','price'=>'99.00','add_time'=>1576080000]

    ];

    $insert = Db::table('shop_goods')->insertAll($data);

    print_r($insert);

}

六、修改

1、修改数据 update

  • update 方法返回影响数据的条数,没修改任何数据返回 0

public function index(){

    $data = ['price'=>'68'];

    $update = Db::table('shop_goods')->where('id',8)->update($data);

    print_r($update);

}

2、自增 inc

  • inc 方法自增一个字段的值

public function index(){

    $inc = Db::table('shop_goods')->where('id',5)->inc('stock')->update();

    print_r($inc);

    # 字段的值增加5

    $inc = Db::table('shop_goods')->where('id',6)->inc('stock',5)->update();

    print_r($inc);

}

3、自减 dec

  • dec

indeks fungsi awam(){

  $data = [

                                                                                                                                                                                                                                                                                                                                            > 'kucing'=>'1' ,'title'=>'2019 New Autumn and Winter Style Lazy Style Loose Sweater Knitted Dress Retro Hong Kong Style Selebriti Internet Set Dua Keping','price'=>'408.00','add_time' =>1576080000], . = >'99.00','add_time'=>1576080000]

];

$insert = Db::table('shop_goods')->insertAll($data);

);_r($insert);

🎜}🎜🎜

6 Pengubahsuaian

🎜1 Ubah suai kemas kini data🎜🎜🎜🎜kemas kini mengembalikan bilangan data yang terjejas, jika tiada data diubah, ia mengembalikan 0. 🎜🎜🎜🎜 🎜indeks fungsi awam(){🎜🎜 $data = ['price'=>'68'];🎜🎜 $update = Db::table('shop_goods')->where('id' ,8)- >kemas kini($data);🎜🎜 print_r($update);🎜🎜}🎜🎜🎜2. Auto-increment inc🎜🎜🎜🎜inc menambah nilai a. medan🎜🎜🎜🎜 🎜indeks fungsi awam(){🎜🎜 $inc = Db::table('kedai_barang')->di mana('id',5)->inc('stok')->kemas kini ();🎜🎜 print_r($inc);🎜🎜 # Naikkan nilai medan sebanyak 5🎜🎜 $inc = Db::table('shop_goods')->where('id',6)-> inc('stock',5) ->update();🎜🎜 print_r($inc);🎜🎜}🎜🎜🎜3 Decrement dec🎜🎜🎜🎜dec kaedah mengurangkan nilai bagi medan🎜🎜🎜🎜🎜 🎜indeks fungsi awam(){🎜🎜 # Tolak 1 daripada nilai medan🎜🎜 $dec = Db::table('shop_goods')->where('id',7) ->dec('stok') ->kemas kini();🎜🎜 print_r($dec);🎜🎜 # Tolak 5 daripada nilai medan $dec = Db::table('shop_goods')->where( 'id',8)- >dec('stok',5)->kemas kini();🎜. br/ >

indeks fungsi awam(){

#Padam data berdasarkan syarat

$delete = Db::table('shop_goods')->where('id',1)-> delete() ;
  • print_r($delete);

    delete 方法返回影响数据的条数,没有删除返回 0

public function index(){

    # 根据条件删除数据

    $delete = Db::table('shop_goods')->where('id',1)->delete();

    print_r($delete);

    # 删除主键为2的数据

    $delete = Db::table('shop_goods')->delete(2);

    print_r($delete);

    # 删除整表数据

    $delete = Db::table('shop_goods')->delete(true);

    print_r($delete);

}

2、软删除 useSoftDelete

  • 业务数据不建议真实删除数据,TP系统提供了软删除机制

public function index(){

    # 软删除

    $delete = Db::table('shop_goods')->useSoftDelete('status',3)->delete();

    print_r($delete);

}

八、其他操作(自学)

  • save # Padam data dengan kunci utama 2

  • $delete = Db::table('shop_goods')->delete(2);
print_r($delete) ;

# Padam keseluruhan data jadual

$delete = Db::table('shop_goods')->delete(true);

print_r($delete);

}

2 code>useSoftDelete< /code>

Adalah tidak disyorkan untuk memadam data untuk data perniagaan Sistem TP menyediakan mekanisme pemadaman lembut

indeks fungsi awam(){

​ # Padam lembut

.​ $delete = Db::table('shop_goods ')->useSoftDelete('status',3)->delete();

print_r($delete);
  • }

    🎜8. belajar sendiri) 🎜🎜🎜🎜simpan < Kaedah /kod> menulis data secara seragam dan secara automatik menentukan sama ada untuk menambah atau mengemas kini data (berdasarkan sama ada terdapat data kunci utama dalam data bertulis). 🎜🎜🎜🎜🎜indeks fungsi awam(){🎜🎜 # Tambah data🎜🎜 $data = ['cat'=>'2','title'=>'Seluar jeans potong meterbonwe untuk wanita musim panas 2018 Pinggang tengah baharu gaya kedai jeans yang dicuci langsing','price'=>'49.90','add_time'=>1576080000];🎜🎜 $save = Db::table('shop_goods')->save($data );🎜 🎜 print_r($save);🎜🎜 # Ubah suai data🎜🎜 $data = ['price'=>'99.00','id'=>3];🎜🎜 $save = Db::table( 'kedai_barang' )->save($data);🎜🎜 print_r($save);🎜🎜}🎜🎜🎜Nota: menambah, memadam, menyemak dan mengubah suai adalah operasi rutin🎜🎜9 Set data🎜🎜🎜🎜 banyak disediakan pemprosesan kaedah Set Data🎜.
Semua data Berbeza kunci Pemulangan semua dalam data Nama kuncipopPadamkan elemen terakhir dalam datashift Padamkan elemen pertama dalam datanyah anjakan pada elemenpushreduce reverse chunk dispesifikasikan semula lajurIsih Data Nyatakan medan untuk mengisih Kocok data bahagian Isim bagi I peta Fungsi panggil balik memproses elemen dalam tatasusunandi mana Tapis elemen dalam tatasusunan berdasarkan keadaan medan di manaSuka Suka elemen penapis pertanyaan tapis Tidak Suka whereIn whereNotIn di manaAntara diantaraBukan Antara pertanyaan elemen dalam tatasusunan penapis

indeks fungsi awam(){

    $select = Db::table('shop_goods')->select();

    if($select->isEmpty()){

'

' 未  echo   未  cho数据';

    }

    print_r($select->toArray());

}

十、示例

controller

controller

;appcontroller

controller

gunakan thinkfacadeView;

Indeks kelas{

    indeks fungsi awam(){

        $title = '商城';

         $login = '欧阳克';

        $menu,('db_men';('db_men';) )->select();

        $left = $menu->toArray();

        foreach($left as &$left_v){

            $s':v]' =(' $s':v) shop_menu')->where('fid',$left_v['id'])->select();

        }

        $list = Db::table('shop_goods')->select() ;

        $right = $list->toArray();

        foreach($right as &$right_v){

            $right_v['cat'] = Db:'table)('shop ('id',$right_v['cat'])->value('name');

        }

        View::assign([

            'tajuk'  => $tajuk    => $tajuk                          log masuk => $log masuk,

            'kiri' => $right

        ]);

        return View::fetch();

    }

}

view代码:index.html

file clude file="public/left" /}

<div class="main" style="padding:10px;">

    <div class="content">

        <span>商品商;/span> ;/div>

                                                                                                                                                                                                   ;   tle</th> ;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      <                                                                            

                                                                                  }</td>

                                                                                                                                                                                                                                                                                                                                     

                                                                                                                                                                                                                                                                  harga}</td>

($right_v.discount/10)}

                                                          {/jika}

                    </td>

                    <td>{$right_v.stock}</td>

        ;{jika $right_v['status']==1}开启{else/}关闭{/ if}</td>

                    <td>{$right_v.add_time|date='Y-m-d'}</td>

            ;                        <button class="layui-btn layui -btn-xs" onclick="edit()">编辑</button>

                        <button class="layui-btn layui-btn-bahaya layui-btn-xs)("ongn-xs) ;删除</button>

                    </td>

                </tr>

           </tbody>

     </table>

</div>

{include file="public/bottom" /}



bercantum Gabung data lain
insert elemen di end
by menggunakan fungsi yang ditentukan pengguna, kembalikan array sebagai string
rearRange data dalam urutan terbalik
Data dipisahkan kepada beberapa blok data
setiap Lakukan panggilan balik untuk setiap elemen data
penapis Gunakan fungsi panggil balik untuk menapis elemen dalam data
lajur
isih
pesanan
kocok
IN Pertanyaan dan penapis elemen dalam tatasusunan
Not IN menanyakan elemen dalam tatasusunan penapis
Antara pertanyaan