2015-04-12 5 views
0

по какой-то нечетной причине. Оператор php работает нормально, когда у меня есть только элемент в массиве, но каждый раз, когда я добавляю второй, я получаю сообщение об ошибке «Количество столбцов не совпадение значения числа в строке 1 «У меня явно есть правильное количество столбцов. пожалуйста, помогитеЧисло столбцов не соответствует количеству значений в строке 1, используя переменные

$ form_array = implode (",", array ("james", "brown"));

$db_array=implode(",",array('firstname','lastname')); 

$ запроса = "INSERT INTO приложения ($ db_array) Value ('$ массив')";

$dbquery=mysql_query($query); 
if(!$dbquery){ 
    echo mysql_error(); 
} 
+0

Не уверен, что это имеет значение или нет, но вы называете его '$ array' в своем запросе вместо' $ form_array', поэтому, возможно, он возвращает NULL, следовательно, имеет неправильное количество столбцов. –

ответ

0

Ваши значения не указаны правильно. (и вы используете $array вместо $form_array). Примечание $form_array после иммобилизации = 'james,brown'.

Полагая, что (и $db_array) в вашей строке запроса, вы в конечном итоге с:

$query = "INSERT INTO application (firstname, lastname) VALUE ('james,brown'); 

Уведомление «Иаковом» и «коричневый» указаны вместе в одной строке - следовательно, количество столбцов не соответствует количеством значений ,

Вы действительно должны использовать функцию вывода строки запроса на ваших входах - например. mysql_real_escape_string:

писал это с верхней части моей головы, так, возможно, небольшую ошибку синтаксиса где-то, но ниже пример должен подтолкнуть вас в правильном направлении:

$form_array = implode(',', array_map('mysql_real_escape_string', array('james', 'brown'))); 
$db_array = implode(',', array('firstname','lastname')); 
$query = "INSERT INTO application ($db_array) VALUES ($form_array)"; 

Примечание Вы должны также принять некоторые дополнительные меры предосторожности если ваш $db_array предоставляется пользователем в некотором роде.

Смежные вопросы