If you are getting this error:
Internal SQL Bug: 2014, Commands out of sync; you can't run this command now
Then you never called mysqli_result::free(), mysqli_result::free_result(), mysqli_result::close(), or mysqli_free_result() in your script, and must call it before executing another stored procedure.
mysqli_result::free
mysqli_free_result
(PHP 5)
mysqli_result::free -- mysqli_free_result — 結果に関連付けられたメモリを開放する
説明
オブジェクト指向型
void mysqli_result::free
( void
)
void mysqli_result::close
( void
)
void mysqli_result::free_result
( void
)
手続き型
結果に関連付けられたメモリを開放します。
注意:
結果オブジェクトが必要なくなった場合は、常に mysqli_free_result() でメモリを開放すべきです。
返り値
値を返しません。
参考
- mysqli_query() - データベース上でクエリを実行する
- mysqli_stmt_store_result() - プリペアドステートメントから結果を転送する
- mysqli_store_result() - 直近のクエリから結果セットを転送する
- mysqli_use_result() - 結果セットの取得を開始する
Vector at ionisis dot com
29-Dec-2009 02:17
Anonymous
19-Oct-2009 12:49
Freeing the memory associated with a result means that the references returned by mysqli_fetch_object (or equivalent) are cleared. Thus if you should pass an object pointing to a database row _by reference_, every call of mysqli_free_result will discard the referenced data.
