[PHP-users 33934] mysqli_stmt_bind_paramの使い方

Michael michael @ midnight-party.net
2008年 8月 5日 (火) 21:53:15 JST


神崎と申します。

オブジェクト指向型で「mysqli_stmt_bind_param」を使って
MySQLへのINSERT処理ではまっています。

ソースは下記のとおりです。

$stmt = $mysqli->prepare( "INSERT INTO test_tbl( v1, v2, v3 ) VALUES ( ?, ?, ? )" );
if( $stmt ) {
  $data = array();
  $data[0] = "1";
  $data[1] = "2";
  $data[2] = "3";
  $stmt->bind_param( 'sss', $data );
}

マニュアルを見るとbind_paramの第2引数は「mixed &$var1」となっており、
配列が使えると思い、上記のように記述してみたのですが、
prepareがfalseを返します。
bind_paramの第2引数に配列ではなく、
$stmt->bind_param( 'sss', $data[0], $data[1], $data[2] );
のように、3つ独立して渡すと成功します。
配列は使えないのでしょうか?

また使えない場合、実運用ではこの第2引数の個数が動的に変わるので
配列に変わる良い方法はないものでしょうか。
もちろんその場合は第1引数も動的に変えます。

どなたか教えていただけないでしょうか。
よろしくお願いいたします。


なおサーバ環境は下記のとおりです。

サーバ:Red Hat Enterprise Linux v.5
PHP:5.1.6
MySQL:5.0.45 (mysqli関数は使用できるようになっております)



PHP-users メーリングリストの案内