我有一个名为$output
的数组,其中包含:
Array
(
[0] => Array
(
[0] => J Arora
[1] => India
)
[1] => Array
(
[0] => J Ramuj
[2] => Russia
)
[2] => Array
(
[1] => KJ Tris
[2] => Germany
)
)
如何将这些数据插入到像这些
这样的mysql数据库表中---------------
name | country
-------|---------
J Arora|India
-------|--------
J Ramuj|Russia
-------|--------
KJ Tris|Germany
-------|--------
我无法从给定数组中单独获取这些值,因为它们的索引不是按顺序排列的。
答案 0 :(得分:4)
只需使用foreach
循环它,并使用PHP本机函数(如current()
和end()
)来获取元素。鉴于您的阵列中始终只有两个元素,这应该可以正常工作
foreach ($output as $v) {
echo current($v); // Name
echo end($v); // Country
}
调整它以构建查询并在循环内执行它。在循环内你可以做到
foreach ($output as $v) {
$sql = "INSERT INTO table (`name`, `country`) VALUES ('".current($v)."', '".end($v)."')";
// TODO: Execute query
}
您还应注意,使用变量的任何查询都应使用带有占位符的预准备语句。 MySQLi和PDO都支持这一点。
之前构建查询,并在使用适当的变量绑定循环时执行它。
PDO示例:
$stmt = $pdo->prepare("INSERT INTO table (`name`, `country`) VALUES (:name, :country)");
foreach ($output as $v) {
$stmt->execute(array("name" => current($v), "country" => end($v));
}
MySQLi示例:
$stmt = $mysqli->prepare("INSERT INTO table (`name`, `country`) VALUES (?, ?)");
foreach ($output as $v) {
$name = current($v);
$country = end($v);
$stmt->bind_param("ss", $name, $country);
$stmt->execute();
}
答案 1 :(得分:0)
让我们调用你的数组user_details
foreach($user_detail as $single_user){
$i = 0;
foreach($single_user as $user){
if($i==0){
$name = $user;
} else {
$country = $user;
} $i++;
}
$sql_query = INSERT into 'Table'($name, $country);
//Execute this query as per mysqli or or mysql
}
//考虑第一个值始终是名称,第二个值始终是国家/地区名称
答案 2 :(得分:0)
for (int i=0; i < list_value_geojson.size(); i++){
Map.Entry<Double, GeoJsonSource> entry = list_value_geojson.get(i);
if (mapboxMap != null && entry != null) {
mapboxMap.addSource(entry.getValue());
FillLayer fillLayer = new FillLayer(entry.getValue().getId(), entry.getValue().getId());
fillLayer.setProperties(PropertyFactory.fillColor(Color.parseColor(hashMap Colors.get(entry.getKey()))));
mapboxMap.addLayer(fillLayer);
}
}
现在执行$sql = "INSERT INTO tablename(name,country) VALUES";
for($i=0;$i<sizeof($myarray);$i++){
$sql.="(".$myarray[0].",".$myarray[1].")";
}
答案 3 :(得分:0)
for ($a=0; $a<count($array); $i++) {
$dataArray=array_values($array[$i]);
for ($j=0; $j<count($dataArray); $j++) {
$name=$dataArray[0];
$country=$dataArray[1];
$insert_query="insert into tablename set name='$name', country='$country'";
$res_query=mysql_query($insert_query);
}
}
希望这对你有用。
答案 4 :(得分:0)
这可能会有所帮助。它没有经过测试。
$query = "INSERT into 'your table name' ('name', 'country') VALUES ";
foreach($yourArray as $data) {
foreach($data as $d) {
$query .= "('.$d[0].','.$d[1]),";
}
}
$query = substr($query, 0, -1); // To remove last comma from query string
然后你可以执行这个查询。