数据库
table: "country"
coloums:"id_country,country_name"
我只有一个文字领域:
Country: <input type=text name="country_name" >
$conn->query("insert into country");
我想用
来填补这个领域&#34;印度,澳大利亚,加拿大等&#34;
从上面一行(,)必须像对待新值一样对待。 因此必须使用 id_country 增量...
存储在数据库中答案 0 :(得分:3)
你可以这样做: -
<?php
$data = "india,australia,canada";
$exploded_data = explode(',',$data);
$data_to_insert = "('".implode("','",$exploded_data)."')";
echo $data_to_insert;
输出: -
和
注意: - 您的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循环将结果数组中的每个国家/地区添加到数据库中
答案 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生成包含国家/地区名称的数组。使用mysqli
和prepared 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();