2016-10-31 65 views
1

中的準備語句中的字段數量我正在使用一個準備好的語句我已經傳遞了與bind_param中相同數量的變量,正如我所期待的,但它仍然是ginving我變盤點的誤差不match.here是代碼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

你的問題是此行

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

你試圖綁定變量的類型,像你這樣做bind_param(),這是錯誤的 - 因爲這個函數沒有參數像那樣。 bind_result() s唯一的參數是您從查詢中選擇的值,沒有別的。

的解決方案是簡單地從您的通話bind_result()刪除$bind,使其

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

參考

相關問題