2016-06-25 9 views
0

私はこれを理解しようとしています。PHP:配列をbind_paramに渡す方法

$insertSql = 'INSERT INTO table (id,date,name,numFarts) VALUES (?,?,?,?)'; 
$values = (1,'0000-00-00 00:00:00','Bob',5); 
$bind_param_str = ('issi'); 
if ($stmt = $db->prepare ($insertSql)) { // $inserSql is a pre-writted sql insert 
    $stmt->bind_param($bind_param_str,$values); 
    $stmt->execute(); 
    $stmt->close(); 
} 

これは動作しませんが、私は$values

bind_param()に任意のアイデアを渡すための他の方法を考えることはできませんか?

+0

意図を明確にしてください。 $ insertSqlはどのように見えますか? – lexx9999

+0

@ lexx9999これは動的に生成されるので、基本的に単純なものを追加しました。私はこれに対する答えが 'call_user_func_arr'かそのようなものを使用していると推測しています。 –

+0

それは動作しないと言ったらどういう意味ですか?エラーが発生しましたか?その場合、どの行とメッセージが表示されますか? IDはAutoIncrementフィールドですか? – dbmitch

答えて

0

引数として配列を渡す必要がある関数の場合は、call_user_func_arrayを使用できます。この例では

:あなたはarray($stmt,'bind_param')代わりの$stmt->bind_paramを必要とする理由

array_unshift($values,$bind_param_str); 
call_user_func_array(array($stmt,'bind_param'),$values); 

は私に聞かないでください。文法と関係があります。->確信しています。

+0

私は上記のリンクをチェックしてください –

+0

お待ちください、あなたはOP –

+0

です@ YourCommonSense私はまだこれを見つめて何が間違っているのかを見ています。 –

関連する問題