[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 メーリングリストの案内