我的智慧结束了。我有一个页面应该将几个数组插入数据库。我正在尝试组合数组并插入它们。我没有成功地将它们结合起来。 也许他们甚至不需要组合,只需插入一个空数据库。 它们都有相同的键,我将列出3:
我有:
$reference_array contains:
(
[2815] => ref1
[2818] => ref2
[2835] => ref3
)
$ean_array contains:
(
[2815] => 6876876873
[2818] => 0097789783
[2835] => 0907678989
)
$price_array contains:
Array
(
[2815] => 63.83
[2818] => 80.92
[2835] => 23.05
)
使用一个数组我使用explode()和插入Mysql的正确格式,但我不能像下面那样插入多个数组。我尝试插入3个不同的查询,但学会了数据附加在数据库中。
$sql = "INSERT INTO data (Reference,EAN,Price) VALUES (the-reference-array,the-ean-array,theprice-array,etc,etc )";
感觉看起来很简单,可能是。但此刻不适合我: - /
我使用过的东西:
$merged = array_combine(array_keys($reference),$reference);
$merged1 = $merged + array_combine($merged,$ean_array);
如何组合这些数组和/或进行插入查询,以便所有数组都“对齐”以使用相同的键?所有数组总是具有相同的长度。
答案 0 :(得分:2)
假设所有三个数组总是具有完全相同的键,您可以执行以下操作:
foreach (array_keys($price_array) as $key) {
$reference = $reference_array[$key];
$ean = $ean_array[$key];
$price = $price_array[$key];
mysql_query("INSERT INTO data (Reference, EAN, Price) VALUES ('$reference', '$ean', $price)");
}
最好使用prepared statement。这看起来像
$mysqli = new mysqli("example.com", "user", "password", "database");
$statement = $mysqli->prepare("INSERT INTO data (Reference, EAN, Price) VALUES (?, ?, ?)")
foreach (array_keys($price_array) as $key) {
$statement->bind_param("ssd", $reference_array[$key], $ean_array[$key], $price_array[$key]);
$statement->execute()
}
已编辑:合并了三个bind_param
来电。谢谢,@ kingkero!
答案 1 :(得分:0)
你可以试试这个:
$sql = "INSERT INTO data (Reference,EAN,Price) VALUES ";
$comma = "";
foreach(array_keys($reference_array) as $key) {
$sql.= $comma."('".$reference_array[$key]."', '".$ean_array[$key]."', '".$price_array[$key]."')";
$comma = ", ";
}