2016-10-31 8 views
1

準備されたステートメントを使用していますbind_paramで同じ量の変数を渡していますが、変数countのエラーコードmysqli_stmt :: bind_result():準備されたステートメントのフィールド数がバインド変数の数と一致しません

$query="select `shipping_name`,`shipping_address1`,`shipping_address12`,`shipping_city`,`shipping_state`,`shipping_postalcode`,`billing_name`,`billing_address2`,`billing_address22`,`billing_city`,`billing_state`,`billing_postalcode` from puppy_shipping where unique_id=?"; 
           $stmt = $db->prepare($query); 
           $bind='ssssssssssss'; 
           if($stmt){ 
           $stmt->bind_param('s',$id); 
           $stmt->execute(); 
           $stmt->bind_result($bind,$shipping_name,$shipping_address1,$shipping_address12,$shipping_city,$shipping_state,$shipping_postalcode,$billing_name,$billing_address2,$billing_address22,$billing_city,$billing_state,$billing_postalcode); 
           while ($stmt->fetch()) 
           { 
    } 
         $stmt->close(); 
        } 
+0

'bind_result()'タイプの結合を持っていません。 ( 'bind_param()'のように)、 '$ bind'変数を削除してください。 – Qirel

+0

完了!今私はこのエラーがあります! – uneeb

+0

の参照番号でパラメータ1を渡すことはできません。 $ stmt-> bind_result( 'ssssssssssss'、$ shipping_name、$ shipping_address1、$ shipping_address12、$ shipping_city、$ shipping_state、$ shipping_postalcode、$ billing_name、$ billing_address2、$ billing_address22、$ billing_city、$ billing_state、$ billing_postalcode)。 – uneeb

答えて

2

がmatch.hereだしない私をginvingあなたの問題は、あなたが行うようにあなたは、可変タイプをバインドしようとしている。このラインで

$stmt->bind_result($bind, $shipping_name,$shipping_address1,$shipping_address12, ....); 

ですbind_param()これは間違っています - この関数にはパラメータがないためですそのようなエター。 bind_result()唯一の引数はクエリから選択した値です。それ以外は何もありません。

ソリューションは、単にそれ

$stmt->bind_result($shipping_name, $shipping_address1, $shipping_address12, ....); 

作り、あなたのbind_result()コールから$bindを削除することです参考

関連する問題