(PHP 7 >= 7.4.0, PHP 8)
SQLite3Stmt::getSQL — 取得敘述句的 SQL
擷取預備語句的 SQL。如果 expand
為 false
,則擷取未修改的 SQL。如果 expand
為 true
,則所有查詢參數都會被其綁定的值取代,或者如果尚未綁定,則以 SQL NULL
取代。
expand
是否擷取展開的 SQL。傳遞 true
只在 libsqlite 3.14 或更高版本才支援。
傳回預備語句的 SQL,如果失敗則傳回 false
。
如果 expand
為 true
,但 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"