Я получаю значения в массиве следующим образом:
Array ( [0] => English [1] => Arabic )
У меня есть 2 столбца в базе данных, как показано ниже.
lanuage1 language2
Я хочу вставить первый массив [0] => английский в столбец language1 и [1] => Арабский язык2, может ли кто-нибудь предложить, как я могу это сделать? Благодарю.
Я пробовал вот так:
$data = explode( ',', $language ) ; print_r($data); INSERT INTO contact(lanuage1 ,language2) VALUES ($data [0], $data [1]);
но его не работает …
<?php $languages = array( '0' => 'English', '1' => 'Arabic' ); mysqli_query($connection,"INSERT INTO contact(lanuage1 ,language2) VALUES ('$languages[0]', '$languages[1]')"); ?>
Если вы хотите вставить новую запись, вы должны указать каждому столбцу значение, а не только язык1, язык2
Возможно, некоторые столбцы имеют значения по умолчанию в БД, если это так, вы можете пропустить тему в статусе sql.
Попробуй это:
INSERT INTO table_name VALUES (value1, value2, value3,...)
Или посетите эту страницу, возможно, поможет вам: http://www.w3schools.com/php/php_mysql_insert.asp
Если вы хотите, чтобы ваши значения массива были правильно отформатированы, вы можете просто использовать implode()
. Рассмотрим этот пример:
$values = array('English', 'Arabic'); $statement = 'INSERT INTO contact (`language1`, `language2`) VALUES ("' . implode('", "', $values) . '")'; echo $statement;
Результат выборки:
INSERT INTO contact(`language1`, `language2`) VALUES ("English", "Arabic")
Важное примечание. Вы должны помнить, что счетчик столбцов должен иметь тот же счет, что и значения внутри вашего запроса, иначе он не будет работать (количество столбцов должно соответствовать количеству элементов внутри массива или иметь несоответствие).