準備されたmysqlステートメントを使用するようにサイトを変換しようとしていますが、の使用を置き換えるのに問題がありfetch_array()
ます。
php.netのコメントは、うまくいくはずだと思っていた解決策を提供しますが、何らかの理由で、関数を呼び出すときに奇妙な未定義の定数エラーが発生しcall_user_func_array()
ます。誰かがそれを行うためのより良い方法を提案できますか?
これが私が現在使用している関数です。ここに投稿するために少しおろそかにしました(mysqliを拡張し、エラーキャッチなどを処理するより大きなクラスの一部です)ので、コピーして貼り付けるのを間違えた場合は申し訳ありません。
public static function stmt_bind_assoc(&$stmt, &$out) {
$data = mysqli_stmt_result_metadata($stmt);
$fields = array();
$out = array();
$fields[0] = $stmt;
$count = 1;
while($field = mysqli_fetch_field($data)) {
$fields[$count] = &$out[$field->name];
$count++;
}
call_user_func_array(mysqli_stmt_bind_result, $fields);
}
public function fetch_array($rawQuery) {
$stmt = $this->prepare($rawQuery);
$row = array();
self::stmt_bind_assoc($stmt, $row);
$result = $stmt->fetch();
$stmt->free();
return $result;
}
私が得るエラーは次のとおりです。
注意:未定義の定数mysqli_stmt_bind_resultの使用-想定される'mysqli_stmt_bind_result'
致命的なエラー:未定義のメソッドmysqli_stmt :: free()の呼び出し