2013-08-28 3 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; 
} 

это происходит только в PHP, потому что, когда я использую его через MySQL команды он работает ....

+2

Тем не менее хватает своего фактического кода. –

+2

@AmalMurali Какой нужный код отсутствует? Если он переходит в предложение 'else', часть' // code' не имеет значения. – Barmar

+2

ЦЕННОСТИ (?)? он не получает значение, покажите нам, где вы связываете параметр ... эта часть не работает –

ответ

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

Проблема заключается в том, что вы есть запрос внутри, если (проверить состояние), и он всегда возвращает ложь, потому что он еще не имеет значение привязки и запрос не удается, назначить переменная в запросе, и после этого, является то, что вы можете проверить результат:

$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 
} 
Смежные вопросы