2017-09-07 83 views
-1

正如標題所暗示的,我嘗試過不同的設置,還有其他一些問題。調用未定義的方法mysqli_stmt :: bindParam()

$conn = new mysqli("localhost","root","root","site_db"); 

foreach($webdesigns as $designer){ 

    $whmcs_id = $designer['id']; 
    $email = $designer['email']; 
    $portfolio = json_encode($designer['designs'],JSON_FORCE_OBJECT); 

    $stmt = $conn->prepare("INSERT INTO partners (whmcs_id,email,portfolio) VALUES (?, ? , ?)"); 

    $stmt->bindParam(1, $whmcs_id); 
    $stmt->bindParam(2, $email); 
    $stmt->bindParam(3, $portfolio); 
    echo $stmt->execute(); 

} 
+1

它必須是'bind_param'。 'bindParam'是'PDO'而不是'mysqli_' – Jens

回答

1

與mysqli的工作時,這是bind_param。
使用PDO時,它是bindParam。
使用MySQLi bind_param,你必須設置變量類型,1,2,3不是變量類型。
檢查這裏的變量類型:http://php.net/manual/en/mysqli-stmt.bind-param.php#refsect1-mysqli-stmt.bind-param-parameters

$conn = new mysqli("localhost","root","root","site_db"); 

foreach($webdesigns as $designer){ 

    $whmcs_id = $designer['id']; 
    $email = $designer['email']; 
    $portfolio = json_encode($designer['designs'],JSON_FORCE_OBJECT); 

    if($stmt = $conn->prepare("INSERT INTO partners (whmcs_id,email,portfolio) VALUES (?, ? , ?)")){ 

     $stmt->bind_param("iss", $whmcs_id,$email,$portfolio); 

     if(!$stmt->execute()){ 
      print_r("Error : $conn->error"); 
     } 
    } else{ 
     print_r("Error preparing: $conn->error"); 
    } 
} 
+0

我得到這個警告:mysqli_stmt :: bind_param():變量的數量不匹配準備語句和數據庫中的參數數量顯示沒有結果,有什麼想法?我已經將bind_param和變量類型更新爲'iss' – iamTony

+0

如果您使用1行而不是3,那麼bind_param必須如下所示:'$ stmt = $ conn - > prepare(...); $ stmt-> bind_param(「iss」,$ whmcs_id,$ email,$ portfolio); echo $ stmt-> execute();' – IsThisJavascript

+0

所有好的沒有錯誤,但是沒有數據庫插入。我以前用不同的方法體驗過這個。 – iamTony

相關問題