サマリー:一、創(chuàng)建表的SQL語(yǔ)句-- Adminer 4.7.1 MySQL dumpSET NAMES utf8;SET time_zone = '+00:00';SET foreign_key_checks = 0;SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';DROP DATABASE IF EXISTS `shop`;CREATE DA
一、創(chuàng)建表的SQL語(yǔ)句
-- Adminer 4.7.1 MySQL dump
SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
DROP DATABASE IF EXISTS `shop`;
CREATE DATABASE `shop` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `shop`;
DROP TABLE IF EXISTS `product`;
CREATE TABLE `product` (
`id` int(255) NOT NULL AUTO_INCREMENT COMMENT '圖書(shū)id',
`name` varchar(255) NOT NULL COMMENT '圖書(shū)名稱',
`price` int(255) NOT NULL COMMENT '圖書(shū)單價(jià)',
`company` varchar(255) NOT NULL COMMENT '出品該圖書(shū)的公司名稱',
`delete_time` int(12) NOT NULL COMMENT '刪除圖書(shū)信息時(shí)間戳',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `product` (`id`, `name`, `price`, `company`, `delete_time`) VALUES
(1, '純牛奶', 83, '蒙牛', 1557586982),
(2, '清華大學(xué)', 85, '匯源', 0),
(3, '紙巾', 100, '恒安', 0),
(4, '鉛筆', 82, '晨光', 0)
ON DUPLICATE KEY UPDATE `id` = VALUES(`id`), `name` = VALUES(`name`), `price` = VALUES(`price`), `company` = VALUES(`company`), `delete_time` = VALUES(`delete_time`);
-- 2019-05-11 15:22:05
二、程序代碼
<?php
namespace app\index\controller;
use think\Controller;
use app\index\model\Product as productModel;//設(shè)置模型類的別名
class Product extends Controller
{
//1.添加圖書(shū)信息
public function instance(productModel $product)//依賴注入
{
// $product = new productModel();// 實(shí)例化模型
dump($product->getName());//查看模型名稱
$product->id = 6;
$product->name = '《php從入門(mén)到精通》';
$product->price = 30;
$product->company = '清華大學(xué)出版社';
$product->save();
return '新增成功,id=' . $product->id;
}
//2.查詢圖書(shū)信息
public function query()
{
// 1.單條記錄:get(主鍵/閉包)
// 閉包:就是一個(gè)匿名回調(diào)函數(shù)
// $product = productModel::get(2);
// dump($product);
//(1)用閉包來(lái)創(chuàng)建查詢條件
// $product = productModel::get(function ($query) {
// $query->where('id', '>', 1)
// ->where('price', '>', 1)
// ->select();
// });
// dump($product);
// 直接調(diào)用Db靜態(tài)類的查詢構(gòu)造器進(jìn)行查詢
// $product=productModel::where('price', '>', 1)
// ->select();
// (2)多條記錄查詢:all(主鍵列表/閉包)
// 返回值是多個(gè)數(shù)組
// $product=productModel::all(
// function($query) {
// $query->where('id', '>', 1)
// ->where('price', '>', 1);
// });
//// dump($product);
// foreach ($product as $value){
// echo '編號(hào):'.$value->id.'<br>';
// echo '價(jià)格:'.$value->price.'<hr>';
// }
// (3)采用閉包來(lái)實(shí)現(xiàn)將請(qǐng)求變量注入到閉包條件中
$id = $this->request->param('id') ?: 1;
$price = $this->request->param('price') ?: 1;
$product = productModel::all(function ($query) use ($id, $price) {
$query->where('id', '>', $id)
->where('price', '>', $price);
});
dump($product);
}
//3.更新圖書(shū)信息
public function update()
{
//基于查詢的,不允許無(wú)條件更新
//$product=productModel::get(2);
//$product->name='北京大學(xué)';
//$product->save();
//靜態(tài)方法:update();
productModel::update(['name' => '《考研660題》'], ['id' => 2]);
productModel::update(['price' => \think\Db::raw('price-5')],
function ($query) {
$query->where('price', '<', 15000);
});
// 也可以用查詢構(gòu)造器來(lái)更新數(shù)據(jù)
// productModel::where('price', '<', 100000)
// ->data(['price' => \think\Db::raw('price+50')])
// ->update();
}
//4.硬刪除圖書(shū)信息
public function delete()
{
// destroy(主鍵/主鍵列表/閉包)
productModel::destroy(6);
//刪除條件使用閉包
productModel::destroy(function ($query) {
$query->where('id', '=', 6);
});
// 查詢構(gòu)造器實(shí)現(xiàn)刪除
productModel::where('id', '=', 6)->delete();
}
//5.軟刪除圖書(shū)信息:必須在模型中進(jìn)行配置
public function softDelete()
{
// productModel::destroy(1);
// 軟刪除在平臺(tái)查詢中不可見(jiàn)
$res = productModel::withTrashed()->where('id = 1')->select();
dump($res);
}
}
添削の先生:查無(wú)此人添削時(shí)間:2019-05-13 09:45:01
先生のまとめ:完成的不錯(cuò)。后臺(tái)cms管理的功能都是一樣的邏輯。要好好練習(xí),繼續(xù)加油。