Rumah > rangka kerja php > Workerman > Cara menggunakan MySQL untuk penyimpanan data dalam Workerman

Cara menggunakan MySQL untuk penyimpanan data dalam Workerman

王林
Lepaskan: 2023-11-07 16:23:07
asal
1440 orang telah melayarinya

Cara menggunakan MySQL untuk penyimpanan data dalam Workerman

Cara menggunakan MySQL untuk penyimpanan data dalam Workerman

Sebagai rangka kerja Soket PHP tak segerak berprestasi tinggi, Workerman digunakan secara meluas dalam pembangunan pelayan komunikasi rangkaian. Dalam banyak projek praktikal, kami selalunya perlu menggunakan MySQL untuk penyimpanan dan pengurusan data. Di bawah ini kami akan memperkenalkan cara menggunakan MySQL untuk penyimpanan data dalam Workerman dan memberikan contoh kod khusus.

1. Pasang sambungan MySQL

Sebelum kita mula, kita perlu memastikan sambungan MySQL telah dipasang. Sambungan MySQL boleh dipasang melalui arahan berikut:

$ pecl install mysql
Salin selepas log masuk

Jika sambungan MySQL sudah dipasang, anda boleh melangkau langkah ini.

2 Wujudkan sambungan MySQL

Sebelum menggunakan MySQL untuk penyimpanan data, anda perlu membuat sambungan dengan MySQL terlebih dahulu. Dalam Workerman, kami boleh mewujudkan sambungan MySQL melalui kod berikut:

<?php
require_once __DIR__ . '/Workerman/Autoloader.php';

use WorkermanWorker;
use WorkermanMySQLConnection;

$worker = new Worker();

$worker->onWorkerStart = function() {
    $GLOBALS['db'] = new Connection('host', 'username', 'password', 'database');
};

Worker::runAll();
Salin selepas log masuk

Dalam kod di atas, kami mula-mula memperkenalkan rangka kerja Autoloader Workerman dan mengisytiharkan objek Worker. Dalam fungsi panggil balik onWorkerStart objek Worker, kami mewujudkan sambungan MySQL menggunakan hos, nama pengguna, kata laluan dan nama pangkalan data yang ditentukan. Simpan objek sambungan dalam pembolehubah global $GLOBALS['db'] untuk digunakan dalam kod berikutnya. $GLOBALS['db']中,以便在后续的代码中使用。

三、执行SQL查询语句

在建立了MySQL连接之后,我们就可以使用MySQL连接对象来执行SQL查询语句了。下面是一个简单的例子:

<?php
use WorkermanWorker;
use WorkermanMySQLConnection;

$worker = new Worker();

$worker->onWorkerStart = function() {
    $GLOBALS['db'] = new Connection('host', 'username', 'password', 'database');
};

$worker->onMessage = function($connection, $data) {
    $res = $GLOBALS['db']->query('SELECT * FROM users');
    if (!$res) {
        $connection->send('查询失败');
    } else {
        $connection->send(json_encode($res));
    }
};

Worker::runAll();
Salin selepas log masuk

在上述代码中,我们在Worker对象的onMessage回调函数中执行了一个查询语句,查询了名为users的表中的所有数据。如果查询失败,则返回"查询失败";否则将查询结果使用json_encode函数进行序列化,并发送给客户端。

这只是一个简单的例子,实际应用中,我们可以根据具体的需求,执行各种SQL语句,如插入、更新、删除等操作。

四、连接池优化

在高并发的网络应用中,经常需要用到连接池来优化数据库连接。Workerman框架提供了MySQL连接池的支持,可以有效地管理和复用MySQL连接。

以下是一个使用连接池的示例代码:

<?php
use WorkermanWorker;
use WorkermanMySQLConnection;

$worker = new Worker();

$worker->onWorkerStart = function() {
    $GLOBALS['db'] = new WorkermanMySQLPool('host', 'username', 'password', 'database');
};

$worker->onMessage = function($connection, $data) {
    $GLOBALS['db']->pop(function($db) use ($connection) {
        $res = $db->query('SELECT * FROM users');
        if (!$res) {
            $connection->send('查询失败');
        } else {
            $connection->send(json_encode($res));
        }
        $db->push($db);
    });
};

Worker::runAll();
Salin selepas log masuk

在上述代码中,我们使用Workerman框架提供的连接池类WorkermanMySQLPool来创建连接池对象。在onMessage回调函数中,使用$GLOBALS['db']->pop方法从连接池中获取一个连接,然后执行查询操作。最后使用$db->push

3. Laksanakan pernyataan pertanyaan SQL

Selepas mewujudkan sambungan MySQL, kami boleh menggunakan objek sambungan MySQL untuk melaksanakan pernyataan pertanyaan SQL. Berikut ialah contoh mudah:

rrreee

Dalam kod di atas, kami melaksanakan pernyataan pertanyaan dalam fungsi panggil balik onMessage objek Worker untuk menanyakan semua data dalam jadual bernama pengguna. Jika pertanyaan gagal, "Query failed" dikembalikan jika tidak, hasil pertanyaan akan disiri menggunakan fungsi json_encode dan dihantar kepada klien. 🎜🎜Ini hanyalah contoh mudah Dalam aplikasi sebenar, kami boleh melaksanakan pelbagai pernyataan SQL mengikut keperluan tertentu, seperti memasukkan, mengemas kini, memadam dan operasi lain. 🎜🎜4. Pengoptimuman kumpulan sambungan🎜🎜Dalam aplikasi rangkaian konkurensi tinggi, kumpulan sambungan sering digunakan untuk mengoptimumkan sambungan pangkalan data. Rangka kerja Workerman menyediakan sokongan untuk pengumpulan sambungan MySQL, yang boleh mengurus dan menggunakan semula sambungan MySQL dengan berkesan. 🎜🎜Berikut ialah kod sampel menggunakan pengumpulan sambungan: 🎜rrreee🎜Dalam kod di atas, kami menggunakan kelas kumpulan sambungan WorkermanMySQLPool yang disediakan oleh rangka kerja Workerman untuk mencipta objek kumpulan sambungan. Dalam fungsi panggil balik onMessage, gunakan kaedah $GLOBALS['db']->pop untuk mendapatkan sambungan daripada kumpulan sambungan, dan kemudian lakukan operasi pertanyaan. Akhir sekali, gunakan kaedah $db->push untuk mengembalikan sambungan ke kumpulan sambungan untuk digunakan oleh permintaan lain. 🎜🎜5. Ringkasan🎜🎜Melalui artikel ini, kami mempelajari cara menggunakan MySQL untuk penyimpanan data dalam Workerman. Mula-mula, anda perlu memasang sambungan MySQL melalui perintah pecl install mysql, kemudian buat sambungan dengan MySQL dan laksanakan pernyataan pertanyaan SQL. Dalam kes konkurensi yang tinggi, kami juga boleh menggunakan kumpulan sambungan untuk mengoptimumkan sambungan pangkalan data. Saya harap artikel ini boleh membantu anda, dan saya berharap storan data anda lancar apabila menggunakan Workerman untuk membangunkan aplikasi rangkaian. 🎜

Atas ialah kandungan terperinci Cara menggunakan MySQL untuk penyimpanan data dalam Workerman. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan