我想在mysql数据库中添加多个值

时间:2016-09-06 12:08:50

标签: php mysql sql

数据库

table: "country" 
coloums:"id_country,country_name"

我只有一个文字领域:

Country: <input type=text name="country_name" >
$conn->query("insert into country");

我想用

来填补这个领域
  

&#34;印度,澳大利亚,加拿大等&#34;

从上面一行(,)必须像对待新值一样对待。 因此必须使用 id_country 增量...

存储在数据库中

5 个答案:

答案 0 :(得分:3)

你可以这样做: -

<?php

$data = "india,australia,canada";
$exploded_data = explode(',',$data);
$data_to_insert = "('".implode("','",$exploded_data)."')";

echo $data_to_insert;

输出: -

https://eval.in/636118

https://eval.in/636131

注意: - 您的id_country列必须 Auto-incremented primary key

如果是,那么只需一个查询: -

"INSERT INTO country (country_name) VALUES ".$data_to_insert;

或者

"INSERT INTO country (country_name) VALUES $data_to_insert";

将做所有事情

最好使用prepared statements执行此操作。

答案 1 :(得分:2)

最好是在输入文本上使用PHP的explode()函数,使用", "作为分隔符,然后通过foreach循环将结果数组中的每个国家/地区添加到数据库中

更多信息:http://php.net/manual/en/function.explode.php

答案 2 :(得分:2)

我不确定我是否理解你,但我可以向你解释,爆炸。它会返回一个字符串数组。

$values = "value1, value2";
$explode = explode(",", $values);

之后您可以继续以下内容;

$explode[0];
$explode[1];

答案 3 :(得分:2)

$countries = ['india','australia','canada']

foreach ($countries as $country) {
     // Run/build you sql query
} 

SQL示例查询

INSERT INTO `country` (`country_name`)
VALUES ('india');

答案 4 :(得分:2)

首先处理发布的字符串,确保变量实际设置并通过基本测试并使用explode生成包含国家/地区名称的数组。使用mysqliprepared statements允许您构造一次sql语句,绑定必要的参数和变量一次,但很快执行多次。

$dbhost =   'localhost';
$dbuser =   'xxx'; 
$dbpwd  =   'xxx';
$dbname =   'xxx';
$db =   new mysqli( $dbhost, $dbuser, $dbpwd, $dbname );

/* make sure the posted variable isn't empty */
$countries=!empty( $_POST['country_name'] ) && stristr( $_POST['country_name'], ',' ) ? $_POST['country_name'] : false;
if( $countries ){

    /* explode the string to create the array */
    $countries=explode(',',$countries);

    /* construct sql statement for use as a prepared statement */
    $sql='insert into `country` set `country_name`=?';

    /* prepare the statement object */
    $stmt=$db->prepare( $sql );

    /* bind the param to the variable */
    $stmt->bind_param( 's', $country );

    /* iterate through all countries from POSTed string and execute the statement */
    foreach( $countries as $country ){
        $stmt->execute();
    }
}

$stmt->close();
$db->close();