2017-03-06 9 views
1

私はいくつかの類似したSQL文を持っています。パラメータの型は呼び出しごとに異なるので、これらを変数として渡したいと思います。mysqliの変数の使用bind_param

$stmt->bind_param($typeString, $parameter1, $parameter1); 

ここで、$ typeStringは 'ss'または 'is'または 'ds'に設定できます。

エラーが発生するタイプ定義文字列の要素数がバインド変数の数と一致しません。

私は(例えば)

$typeString = "is"; 
$typeString = "\'".$typeString."\'"; 
$stmt->bind_param($typeString, $parameter1, $parameter1); 

そして

$typeString = "is"; 
$stmt->bind_param($typeString, $parameter1, $parameter1); 

を試してみました。しかし、まだエラーを取得しています。

これを変数で設定することはできますか?

+1

SQL文はどこですか?変数を二度束縛しないで '$ parameter1'を二度使います。 – JustOnUnderMillions

+0

あなたは一度だけバインドするだけです:http://stackoverflow.com/questions/15748254/how-to-run-the-bind-param-statement-in-php#15748384その後、パラメータ変数を補充してもう一度実行してください。また、可能であれば、常にparam typに 's'を使用してください。 – JustOnUnderMillions

+0

類似した(しかし同じではない)SQL文の数は2です。したがって、2つのSQL文がある場合は、2つのmysqli stmtオブジェクト(各stmtのもの)もあります。だからここで何も混乱してはいけません。 – JustOnUnderMillions

答えて

1
  1. 最初の変種は、型定義リストに引用符を送信しないでください。
  2. 2番目の亜種は実際に動作します。
  3. 特定のパラメータを設定することはほとんどありません。すべてのために「s」を使用してください。
関連する問題