2013-08-28 75 views
0

我不知道爲什麼我得到這個錯誤,我測試它只使用一列和一個值,它仍然顯示它,這裏是我的代碼:MySQL的錯誤:「列數不匹配在第1行的值計數」與PHP

if($insert_company = mysqli_prepare($mysqli, "INSERT INTO company(company_name) VALUES(?)")){ 
    mysqli_stmt_bind_param($insert_company , 's', $company_name); 
    mysqli_stmt_execute($insert_company); 

    if(mysqli_stmt_error($insert_company)) { 
    printf('Error2: %s<br>File: %s<br>Line: %s', mysqli_stmt_error($insert_company), basename(__FILE__), __LINE__); 
    mysqli_stmt_close($insert_company); 
    mysqli_close($mysqli); 
    exit; 
    } else { 
    mysqli_stmt_close($insert_company); 
    mysqli_close($mysqli); 
    echo "<script>alert('Okay');</script>"; 
    } 
} else { 
    printf('Error: %s<br>File: %s<br>Line: %s', mysqli_error($mysqli), basename(__FILE__), __LINE__); 
    mysqli_close($mysqli); 
    exit; 
} 

這不僅是因爲當我使用它通過的MySQL命令它的工作原理髮生在PHP ....

+2

人仍下落不明的實際代碼。 –

+2

@AmalMurali缺少什麼相關的代碼?如果它進入'else'子句,那麼'//代碼'部分是不相關的。 – Barmar

+2

VALUES(?)?它沒有得到值,告訴我們你在哪裏綁定參數......該部分不工作 –

回答

0

你在哪裏傳遞價值「COMPANY_NAME」。您的代碼應該是這樣的:

$insert_company = mysqli_prepare($mysqli, "INSERT INTO company(company_name) VALUES(?)"); 
$insert_company->bind_param("s", "The company name"); 
$insert_company->execute(); 
0

的問題是,你有裏面的查詢,如果(檢查條件),它始終返回false,因爲它不具有尚未綁定值和查詢失敗,分配到查詢後一個變量,就是你可以檢查結果:

$insert_company = mysqli_prepare($mysqli, "INSERT INTO company(company_name) VALUES(?)") 
mysqli_stmt_bind_param($insert_company , 's', $company_name); 
mysqli_stmt_execute($insert_company) 

現在,如果()

if($insert_company){ 
    //do whatever 
}else{ 
//do not whatever 
} 
相關問題