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

WBOY
リリース: 2023-11-08 11:57:43
オリジナル
1415 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート