# ezphpsql

データベースを開きSQLステートメントを実行

ezphpsql "filename","p1", p2,...

"filename" : データベースファイル名
"p1" : 実行する SQL 文
p2 : SQL文のプレースホルダにセットする値 (省略,複数指定 可)

(プラグイン / モジュール : mod_ezphp)

## 解説

    # ezphp.php と httpload命令を利用して実行されています。
    # ezphp.phpファイルも必要となるため、htmlファイルと同じ場所にアップロードしてください。

    サーバにあるデータベースファイルを開き SQL 文を実行します。
    指定されたファイルがなければ新規に作成されますが、外部のサーバで実行する前にローカル等でデータベースファイルを作り事前にアップロードしておいた方が良いでしょう。

    "p1"SQL文にはプレースホルダとして疑問符「?」を付けることが出来ます。
    プレースホルダにセットする値は p2以降を指定してください。
    「?」の箇所へ前から順番に割り当てられます。

    SELECT 文を実行した場合はシステム変数refstrに簡易的な平文として結果が返ってきます。
    いくつの結果が返ってきたかを知るには、返ってきた文字列の行数を要求したカラム数で割って算出してください。
    返ってくる文字列の中身は下記のようになっています。
    カラム1:内容
    カラム2:内容
    　：
    　：
    また、返ってきた「内容」の中に改行が含まれていた場合は"<BR>"という文字に置換されています。
    結果をjsonで受け取りたい場合は ezphpsql_json を利用してください。

## サンプル

    #include "hsp3dish.as"

    #include "mod_ezphp.hsp"

    ezphpsql "sample.db", "CREATE TABLE IF NOT EXISTS UserScore (ID INTEGER PRIMARY KEY, score INTEGER, name TEXT)"
    repeat 5
    	ezphpsql "sample.db", "INSERT INTO UserScore (score, name) VALUES (?, ?)", rnd(32768), "user"+cnt
    loop
    ezphpsql "sample.db", "SELECT score, name FROM UserScore ORDER BY score DESC"
    rankText = refstr

    // ランキング描画
    redraw 0
    notesel rankText
    repeat notemax / 2  ; 何項目要求したかでいくつ結果が返ってきたかを計算。(ここでは score, name の2項目要求)
    	noteget score, cnt*2 : strrep score, "score:",""  ; keyが邪魔なので取り除く
    	noteget name, cnt*2+1 : strrep name, "name:", ""
    	mes ""+(cnt+1)+"位  "+score+" - "+ name
    loop
    redraw 1
    stop

## 関連項目

ezphpsql_json | データベースを開きSQLステートメントを実行。結果をjsonで取得 | (mod_ezphp)

## サンプル逆引き (2)

sample03_ezphp-sql.hsp | title "ブロック崩し" cls 4 *gstart clrflag=0 クリアフラグ blsize=16..
sample09_hgimg4-yoko-WebAssembly.hsp | title "HGIMG4 Sample" HSP3同梱サンプル sample\hgimg4\boxf_sna..

## 情報

プラグイン / モジュール | mod_ezphp
バージョン | 1.3
作成日 | 2025/1/3
著作者 | MIZUSHIKI
URL | https://github.com/MIZUSHIKI/HSP-Module
備考 | HSP3Dish.jsでPHPと連携し、サーバへのテキスト保存またはsqlite編集を簡単に行うことができます。
タイプ | 拡張命令
グループ | データベース操作
対応環境 | ・Windows 版 HSP