時系列データは、最新のアプリケーションの一般的なデータ型であり、時間とともに変化する数値を記録します。 PHP開発では、Oracleデータベースと組み合わせてこのデータを処理することが非常に一般的です。この記事では、Oracleデータベースを使用してPHPで時系列データを処理するためのヒントを共有し、コードの例を介して開発者がこれらの操作をよりよく理解するのに役立ちます。
PHPでは、通常、PDO拡張機能はOracleデータベースに接続するために使用されます。これが簡単な接続コードの例です。
<?php $host = 'localhost'; $port = '1521'; $sid = 'ORCL'; $dsn = "oci:dbname=//(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=$host)(PORT=$port))(CONNECT_DATA=(SID=$sid)))"; $user = 'username'; $password = 'password'; try { $pdo = new PDO($dsn, $user, $password); echo "に接続しますOracleデータベースの成功!"; } catch (PDOException $e) { echo "接続に失敗しました: " . $e-> getMessage(); } ?>
Oracleデータベースでは、タイムスタンプタイプを使用して時系列データを保存できます。時系列リストを作成するためのサンプルコードは次のとおりです。
<?php $sql = "CREATE TABLE time_series_data ( id INT PRIMARY KEY, timestamp_col TIMESTAMP, value NUMBER )"; $pdo-> exec($ sql); エコー「時系列リストが普通に作成されました!」; ?>
時系列のデータをテーブルに挿入する場合、to_timestamp関数を使用して、文字列の日付をOracleのタイムスタンプタイプに変換できます。時系列データを挿入するためのコード例は次のとおりです。
<?php $id = 1; $timestamp = '2022-01-01 00:00:00'; $value = 10; $sql = "INSERT INTO time_series_data (id, timestamp_col, value) VALUES (:id, TO_TIMESTAMP(:timestamp, 'YYYY-MM-DD HH24:MI:SS'), :value)"; $stmt = $pdo-> prepare($ sql); $ stmt-> bindparam( ':id'、$ id、pdo :: param_int); $ stmt-> bindparam( ':タイムスタンプ'、$タイムスタンプ、pdo :: param_str); $ stmt-> bindparam( ':value'、$ value、pdo :: param_int); $ stmt-> execute(); エコー「時系列データが普通に挿入されます!」; ?>
時系列データを照会するときは、to_char関数を使用してタイプタイムスタンプの日付を文字列に変換し、to_timestamp関数を使用して、比較のために文字列をタイムスタンプに変換できます。時系列データを照会するためのコード例は次のとおりです。
<?php $startTimestamp = '2022-01-01 00:00:00'; $endTimestamp = '2022-01-02 00:00:00'; $sql = "SELECT id, TO_CHAR(timestamp_col, 'YYYY-MM-DD HH24:MI:SS') AS timestamp, value FROM time_series_data WHERE timestamp_col >= TO_TIMESTAMP(:startTimestamp, 'YYYY-MM-DD HH24:MI:SS') AND timestamp_col < TO_TIMESTAMP(:endTimestamp, 'YYYY-MM-DD HH24:MI:SS')"; $stmt = $pdo->prepare($ sql); $ stmt-> bindparam( ':starttimestamp'、$ starttimestamp、pdo :: param_str); $ stmt-> bindparam( ':endtimestamp'、$ endtimestamp、pdo :: param_str); $ stmt-> execute(); $ result = $ stmt-> fetchall(pdo :: fetch_assoc); foreach($ result as $ row){ echo "id:"。 $ row ['id']。 「タイムスタンプ:」。 $ row ['Timestamp']。 " 価値: " 。 $ row ['value']。 "\ n"; } ?>
PHP開発では、Oracleデータベースを使用して時系列データを処理することが一般的な要件です。この記事では、Oracleデータベースに接続し、時系列リストを作成し、時系列データを挿入およびクエリする方法を説明するための実用的なコード例を提供します。読者が実際の開発においてOracleデータベースの時系列データをより効率的に処理できるようにすることを願っています。