mysqli::stmt_init
mysqli_stmt_init
(PHP 5, PHP 7, PHP 8)
mysqli::stmt_init -- mysqli_stmt_init — ステートメントを初期化し、mysqli_stmt_prepare で使用するオブジェクトを返す
説明
オブジェクト指向型
手続き型
mysqli_stmt_prepare() で使用可能な ステートメントオブジェクトを割り当て、初期化します。
注意:
mysqli_stmt_prepare() がコールされるまで、 これ以降のあらゆる mysqli_stmt 関数のコールは失敗します。
戻り値
オブジェクトを返します。
+add a note
User Contributed Notes 2 notes
Jeff C ¶
8 years ago
stmt_init() seems to clear previous (possibly erroneous) results on the DB connection, which means you don't necessarily need to use it but it could make the code more robust.
In a PHPUnit test, I had a sequence of prepared queries on the same connection. One of them fetched a row from a SELECT but didn't keep fetching until it drained the connection, so it left some stale results. When the next query did this:
<?php
$db = $this->getConnection()->getDbConnection();
$preparedQuery = $db->prepare ($query);
?>
the prepare() call generated an error: "Could not prepare query: Commands out of sync; you can't run this command now." Changing to this:
<?php
$db = $this->getConnection()->getDbConnection();
$preparedQuery = $db->stmt_init();
$preparedQuery->prepare ($query);
?>
resolved the problem.
mamdo7 at hotmail dot com ¶
10 years ago
you can use $stmt = $mysqli->prepare(); directly without stmt-init() . i think there is no need for stmt-init .
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google