WEBの極み

WEB時代を生き残る情報とテクニック

*

phpでmysqli_stmt::get_resultでエラーundefined method mysqli_stmt::get_result()が表示される

      2017/01/05

get_result()を利用するにはphpのmysql native driverが必要になる。
PHPのバージョンが5.3以上では自動的に導入されているとなっている。

明示的に利用する場合にはPHPをコンパイルするときにconfigureに
./configure –with-mysql=mysqlnd \
–with-mysqli=mysqlnd \
–with-pdo-mysql=mysqlnd \
[other options]

と入力する必要がある。そして、この設定は一番最初のコンパイル時にのみ設定できるということだ。

私が利用しているXserverで、phpinfoを確認したところ
./configure –with-mysql=shared \
–with-mysqli=shared \
–with-pdo-mysql=shared \

という設定になっていた。

ちなみに、phpinfoの確認方法は
phpinfo.phpというファイルを作って、

と保存し、アクセスすることで確認することができる。

つまりXserverを利用している限りはnative driver を利用することができないということになる。
代替案として、
get_resulut()を用いる代わりに
BIND_RESULT と FETCHを使うといいらしい。

以下に詳しいプリペアドステートメントの使い方が紹介されている。
http://furudate.hatenablog.com/entry/2013/10/04/211422

 - php