ホームページ >PHPフレームワーク >Workerman >Workerman のデータ ストレージに SQLite を使用する方法

Workerman のデータ ストレージに SQLite を使用する方法

WBOY
WBOYオリジナル
2023-11-08 11:57:431427ブラウズ

Workerman のデータ ストレージに SQLite を使用する方法

Workerman でデータ ストレージに SQLite を使用する方法

はじめに:
Workerman は、PHP 言語で開発された高性能マルチプロセス ネットワーク プログラミング フレームワークです。豊富なネットワーク プログラミング インターフェイスと便利な拡張メカニズムを備えています。 SQLite は、小規模プロジェクトでの使用に適した軽量の組み込みデータベースです。この記事では、SQLite を使用して Workerman にデータを保存する方法を紹介し、具体的なコード例を示します。

1. SQLite データベースのセットアップ
まず、SQLite データベース ファイルを作成し、データ テーブル構造をセットアップする必要があります。 SQLite のコマンド ライン ツールまたはビジュアル ツール (Navicat など) を使用して作成できます。データ テーブル構造の例を次に示します。

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2. SQLite 拡張機能のインストール
SQLite を使用する前に、PHP の SQLite 拡張機能をインストールする必要があります。次のコマンドを使用してインストールできます:

sudo apt-get install phpX.X-sqlite3

X.X を PHP のバージョン番号に置き換えてください。

3. Workerman で SQLite を使用する

  1. SQLite クラス ライブラリとその他の関連クラス ライブラリを紹介します:
require_once __DIR__ . '/vendor/autoload.php';

use WorkermanWorker;
use WorkermanConnectionTcpConnection;
use SQLite3;
  1. Workerman サービスを作成します。
$worker = new Worker('tcp://0.0.0.0:8000');
  1. 接続イベントをリッスンし、クライアント要求を処理します:
$worker->onConnect = function ($connection) {
    // 连接建立成功的回调函数
};

$worker->onMessage = function ($connection, $data) {
    // 接收到客户端消息的回调函数
};

$worker->onClose = function ($connection) {
    // 连接关闭的回调函数
};

Worker::runAll();
  1. 接続の確立時にコールバック関数でデータベース接続を作成または開きます成功:
$worker->onConnect = function ($connection) {
    // 连接建立成功的回调函数
    $db = new SQLite3('/path/to/your/database.sqlite');
};

/path/to/your/database.sqlite を SQLite データベース ファイルへのパスに置き換えてください。

  1. クライアント メッセージを受信するコールバック関数でデータベース操作を実行します:
$worker->onMessage = function ($connection, $data) use ($db) {
    // 解析客户端消息...
    // 执行数据库操作...
    $username = $data['username'];
    $password = $data['password'];
    
    // 插入数据
    $query = "INSERT INTO `user` (`username`, `password`) VALUES ('{$username}', '{$password}')";
    $db->exec($query);
    
    // 查询数据
    $query = "SELECT * FROM `user`";
    $result = $db->query($query);
    while ($row = $result->fetchArray()) {
        // 处理查询结果...
    }
};
  1. 接続を閉じるコールバック関数でデータベース接続を閉じます:
$worker->onClose = function ($connection) use ($db) {
    // 连接关闭的回调函数
    $db->close();
};

4. 完全なコード例

require_once __DIR__ . '/vendor/autoload.php';

use WorkermanWorker;
use WorkermanConnectionTcpConnection;
use SQLite3;

$worker = new Worker('tcp://0.0.0.0:8000');

$worker->onConnect = function ($connection) {
    $db = new SQLite3('/path/to/your/database.sqlite');
};

$worker->onMessage = function ($connection, $data) use ($db) {
    $username = $data['username'];
    $password = $data['password'];
  
    // 插入数据
    $query = "INSERT INTO `user` (`username`, `password`) VALUES ('{$username}', '{$password}')";
    $db->exec($query);
  
    // 查询数据
    $query = "SELECT * FROM `user`";
    $result = $db->query($query);
    while ($row = $result->fetchArray()) {
        // 处理查询结果...
    }
};

$worker->onClose = function ($connection) use ($db) {
    $db->close();
};

Worker::runAll();

注: 上記のコード例は単なる機能デモであり、特定のビジネス ロジックと例外処理は実際の状況に応じて変更および改善する必要があります。 。

概要:
この記事では、Workerman でのデータ ストレージに SQLite を使用する方法を紹介し、具体的なコード例を示します。この記事が読者のお役に立てれば幸いです。質問や間違いがある場合は、時間内に修正してください。

以上がWorkerman のデータ ストレージに SQLite を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。