如何将值数组插入mysql表的不同列?

时间:2014-05-10 06:19:07

标签: php mysql

我在这样的数组中获取值:

 Array
(
    [0] => English
    [1] => Arabic
)

我在数据库中有两列,如下所示。

lanuage1 language2

我想插入第一个数组[0] =>英语到language1列和[1] =>阿拉伯语到语言2,任何人都可以建议我该怎么做?感谢。

我试过这样:

$data = explode( ',', $language ) ;

print_r($data);

INSERT INTO contact(lanuage1 ,language2) VALUES ($data [0], $data [1]);

但它不起作用......

3 个答案:

答案 0 :(得分:1)

<?php
$languages = array(
'0' => 'English',
'1' => 'Arabic'
);

mysqli_query($connection,"INSERT INTO contact(lanuage1 ,language2) VALUES ('$languages[0]', '$languages[1]')");
?>

答案 1 :(得分:1)

如果要插入新记录,则必须为每列提供其值,而不仅仅是language1,language2

也许某些列在DB中有默认值,如果是,则可以跳过sql statment中的主题。

试试这个:

INSERT INTO table_name
VALUES (value1, value2, value3,...)

或者访问此页面可能会帮助您: http://www.w3schools.com/php/php_mysql_insert.asp

答案 2 :(得分:1)

如果您希望正确格式化数组值,可以使用implode()。考虑这个例子:

$values = array('English', 'Arabic');
$statement = 'INSERT INTO contact (`language1`, `language2`) VALUES ("' . implode('", "', $values) . '")';
echo $statement;

示例输出:

INSERT INTO contact(`language1`, `language2`) VALUES ("English", "Arabic")
  

重要说明:您必须记住,列数必须与查询中的值具有相同的计数,否则它将无法工作(列的数量必须与数组中的元素数量匹配,否则您将拥有不匹配)。