SQLite3Stmt::getSQL

(PHP 7 >= 7.4.0, PHP 8)

SQLite3Stmt::getSQLステートメントのSQLを取得する

説明

public SQLite3Stmt::getSQL(bool $expand = false): string|false

プリペアドステートメントのSQLを取得します。 expandfalse の場合、 変更されていないSQLを取得します。 expandtrue の場合、 全てのクエリパラメータがバインド済みの値で、 何もバインドされていない場合は NULL で置き換えられます。

パラメータ

expand

展開済みのSQLを取得するかどうか。 true を渡すのは、libsqlite 3.14 以降でのみサポートされています。

戻り値

プリペアドステートメントのSQLを返します。 失敗した場合に false を返します

エラー / 例外

expandtrue に指定したが、libsqlite のバージョンが 3.14 より前の場合、 SQLite3::enableExceptions() に応じて、 E_WARNING レベルの警告または Exception が発生します。

例1 展開済みのSQLを調べる

<?php
$db 
= new SQLite3(':memory:');
$stmt $db->prepare("SELECT :a, ?, :c");
$stmt->bindValue(':a''foo');
$answer 42;
$stmt->bindParam(2$answer);
var_dump($stmt->getSQL(true));
?>

上の例の出力は、 たとえば以下のようになります。

string(24) "SELECT 'foo', '42', NULL"
関連キーワード:  取得, ステートメント, expand, getSQL, libsqlite, プリペアドステートメント, 展開, string, 例外, 発生