Rumah  >  Artikel  >  rangka kerja php  >  Cara menggunakan ThinkPHP6 untuk melaksanakan analisis data

Cara menggunakan ThinkPHP6 untuk melaksanakan analisis data

WBOY
WBOYasal
2023-06-20 08:36:061842semak imbas

Dengan perkembangan Internet, analisis data telah menjadi isu yang perlu diberi perhatian oleh syarikat dan individu. Alat analisis data boleh digunakan untuk memproses dan menganalisis data dengan cepat dan berkesan, dan lebih memahami corak di sebalik data, sekali gus meningkatkan ketepatan dan kecekapan membuat keputusan. Artikel ini akan memperkenalkan cara menggunakan ThinkPHP6 untuk melaksanakan analisis data.

1. Storan data

Sebelum analisis data, kita perlu menyimpan data dalam pangkalan data terlebih dahulu. ThinkPHP6 menyokong pelbagai pangkalan data, seperti MySQL, SQLite, PostgreSQL, Oracle, dll. Berikut adalah MySQL sebagai contoh.

1. Konfigurasikan maklumat sambungan pangkalan data dalam fail config/database.php:

// MySQL数据库配置信息
'database' => [
    // 数据库类型
    'type'            => 'mysql',
    // 数据库连接DSN配置
    'dsn'             => '',
    // 服务器地址
    'hostname'        => 'localhost',
    // 数据库名
    'database'        => 'database_name',
    // 数据库用户名
    'username'        => 'root',
    // 数据库密码
    'password'        => '',
    // 数据库连接端口
    'hostport'        => '3306',
    // 数据库连接参数
    'params'          => [],
    // 数据库编码默认采用utf8mb4
    'charset'         => 'utf8mb4',
    // 数据库表前缀
    'prefix'          => '',
    // 数据库调试模式
    'debug'           => true,
    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'          => 0,
    // 数据库读写是否分离 主从式有效
    'rw_separate'     => false,
    // 读写分离后 主服务器数量
    'master_num'      => 1,
    // 指定从服务器序号
    'slave_no'        => '',
    // 是否严格检查字段是否存在
    'fields_strict'   => true,
    // 数据集返回类型
    'resultset_type'  => 'array',
    // 自动写入时间戳字段
    'auto_timestamp'  => false,
    // 时间字段取出后的默认时间格式
    'datetime_format' => 'Y-m-d H:i:s',
    // 是否需要进行SQL性能分析
    'sql_explain'     => false,
],

2 Cipta jadual data dalam pangkalan data

Buat jadual bernama pelajar dalam Jadual MySQL dan masukkan beberapa data ujian:

CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `age` int(11) NOT NULL,
  `sex` enum('male','female') NOT NULL,
  `score` decimal(5,2) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO `student` (`id`, `name`, `age`, `sex`, `score`)
VALUES
    (1, '小明', 18, 'male', 89.5),
    (2, '小红', 19, 'female', 95),
    (3, '小亮', 20, 'male', 82.5),
    (4, '小花', 18, 'female', 88.5);

2. Analisis Data

Dengan data yang disimpan dalam pangkalan data, kita boleh menggunakan pembina pertanyaan yang disediakan oleh ThinkPHP6 untuk memproses dan menganalisis.

1. Dapatkan data

Mula-mula anda perlu memperkenalkan kelas Model dalam pengawal dan menentukan kaedah untuk mendapatkan semua data dalam jadual pelajar:

<?php
namespace appindexcontroller;

use appindexmodelStudent;
use thinkController;

class Index extends Controller
{
    public function index()
    {
        $student = new Student();
        $data = $student->select();
        dump($data);
    }
}

Dalam kod di atas, kami Cipta objek Pelajar baharu melalui operator baharu, dan kemudian gunakan kaedah pilih untuk mendapatkan semua data dalam jadual pelajar. Akhir sekali, gunakan kaedah pembuangan untuk mengeluarkan hasil ke halaman untuk memudahkan penyahpepijatan. Perlu diingatkan bahawa kami menggunakan kelas model Pelajar dalam pengawal dan tidak menulis pernyataan SQL untuk jadual pelajar secara manual Ini kerana ThinkPHP6 sudah menyediakan alat pemindahan pangkalan data yang boleh membuat dan mengubah suai jadual data dengan mudah.

2. Kumpulan dan ringkaskan data

Dalam aplikasi praktikal, selalunya perlu untuk mengumpulkan data dan memaparkannya dalam kes ini, anda boleh menggunakan kaedah kumpulan dan jumlah yang disediakan oleh pembina pertanyaan.

kaedah kumpulan digunakan untuk mengumpulkan data mengikut medan tertentu, seperti mengumpulkan jadual pelajar di atas mengikut umur:

public function index()
{
    $student = new Student();
    $data = $student->group('age')->select();
    dump($data);
}

kaedah jumlah digunakan untuk menjumlahkan medan yang ditentukan, seperti mengira pelajar di atas Jumlah markah semua pelajar dalam jadual:

public function index()
{
    $student = new Student();
    $score = $student->sum('score');
    dump($score);
}

3 Data pertanyaan bersyarat

Mengikut keperluan sebenar, kami perlu melakukan penapisan bersyarat semasa proses analisis data, dan kami boleh. gunakan klausa WHERE untuk menapis data.

Sebagai contoh, kami hanya perlu bertanya kepada pelajar yang berumur 18 tahun ke atas dalam jadual pelajar Anda boleh menggunakan kaedah where:

public function index()
{
    $student = new Student();
    $data = $student->where('age', '>=', 18)->select();
    dump($data);
}

Adalah penting untuk ambil perhatian bahawa sejak ThinkPHP6 menggunakan. mekanisme prapemprosesan PDO, Oleh itu, apabila menggunakan klausa WHERE, pengikatan parameter mesti digunakan, jika tidak, mungkin terdapat risiko suntikan SQL.

4. Isih data

Dalam kes jumlah data yang besar, pengguna selalunya perlu mengisih data mengikut peraturan tertentu dan boleh menggunakan kaedah tertib dan had.

Sebagai contoh, kami ingin mengisih data dalam jadual pelajar dari tinggi ke rendah:

public function index()
{
    $student = new Student();
    $data = $student->order('score', 'DESC')->select();
    dump($data);
}

Pada masa yang sama, kami juga boleh menggunakan kaedah had untuk mengehadkan bilangan data yang dikembalikan :

public function index()
{
    $student = new Student();
    $data = $student->order('score', 'DESC')->limit(2)->select();
    dump($data);
}

3. Ringkasan

Di atas adalah proses menggunakan ThinkPHP6 untuk melaksanakan analisis data Melalui kaedah di atas, anda boleh dengan mudah mendapatkan data daripada pangkalan data dan melakukan pengelompokan, ringkasan, bersyarat operasi pertanyaan dan pengisihan , menyediakan sokongan asas untuk analisis data. Adalah penting untuk ambil perhatian bahawa disebabkan pertimbangan keselamatan data, kita mesti menggunakan pengikatan parameter apabila menggunakan klausa WHERE untuk memastikan keselamatan program.

Atas ialah kandungan terperinci Cara menggunakan ThinkPHP6 untuk melaksanakan analisis data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn