Pdo\Sqlite::createFunction SQL 文で使用するユーザー定義関数を登録する &reftitle.description; public boolPdo\Sqlite::createFunction stringfunction_name callablecallback intnum_args-1 intflags0 PHP 関数を、ユーザー定義関数として SQLite に登録します。 登録した関数は、SQL 文の中で使用することが可能です。 ユーザー定義関数は、関数をコールできるあらゆる SQL 文 (SELECTUPDATE 、トリガなど) から呼び出せます。 このメソッドを使用してネイティブ SQL 関数を上書きすることができます。 &reftitle.parameters; function_name SQL 文で使用する関数の名前。 callback 定義した SQL 関数を処理するコールバック関数。 この関数が返す値は、SQLite が理解できる形式 (すなわち スカラー型) でなければなりません。 コールバック関数の定義は次のとおりです: mixedcallback mixedvalue mixedvalues value SQL関数に渡す最初の引数 values SQL関数に渡す2つ目以降の引数 num_args SQL 関数がとる引数の数。 このパラメータが -1 の場合、 SQL 関数は任意の数の引数を取ることができます。 flags ビット単位のフラグの組み合わせ。 現在は、Pdo\Sqlite::DETERMINISTIC だけがサポートされています。 これは、単一のSQLステートメント内では、 同じ入力に対して常に同じ結果を返すことを指定します。 &reftitle.returnvalues; &return.success; &reftitle.examples; <methodname>Pdo\Sqlite::createFunction</methodname> の例 この例では、文字列の SHA256 ハッシュを計算し それを反転する関数を使っています。SQL 文を実行すると、 この関数によって変換されたファイル名が $rows に格納され返ります。 この手法の素晴らしい点は、クエリの後に &foreach; ループを用いて結果を処理する必要がないことです。 createFunction('sha256rev', 'sha256_and_reverse', 1); $rows = $db->query('SELECT sha256rev(filename) FROM files')->fetchAll(); ?> ]]> &reftitle.seealso; Pdo\Sqlite::createAggregate Pdo\Sqlite::createCollation sqlite_create_function sqlite_create_aggregate