目前正在与朋友一起编写服务脚本。当我说服务脚本时,我的意思是它只会用于更新和向数据库添加值。现在我的朋友已经将她所有的值存储为数组作为数据库的值。
我已经成功地输入了其中一个数组,现在我对如何为多个数组执行此操作感到困惑。所以总而言之,这更像是一个关于如何重构我当前的代码以使其更具动态性的问题。
还请记住,她有数百个数组需要这样做,所以它不像 2 或 3,它实际上是数百个。
我更新的代码:(请阅读评论)
$colors['Colors_All'] = array("Black","Charcoal"); // Add unique indexes
$colors['Colors_Bright_All'] = array("Silver","White"); // Add unique indexes
$AllArrays = get_defined_vars(); // Get all defined vars
$Arrays = array(); // Set a default array
foreach ($AllArrays as $varName => $value) { // Run through all the variables set in AllArrays
if(is_array($value) && $varName == 'colors') { // If array is colors then
$Arrays = array_merge($Arrays, $value); // Merge those arrays into the new array
}
}
var_dump($Arrays);
$sql = "INSERT INTO `product_features` ("; // Create the initial query
foreach ($Arrays as $column => $value) { // ForEach over the array
$sql .= "$column,"; // Use the Key Example : 'Colors_All and Color_Bright_All' as a column name
}
$sql2 = rtrim($sql, ","); // trim the initial "," from the columns at the end
$sql2 .= ")"; // Close off the columns names
$sql2 .= " VALUES ";
foreach ($Arrays as $column => $value) { // This is where the problem starts -_-
foreach ($value as $key => $insert) { // Get the value
$sql2 .= "('$insert', '$insert'),"; // I need to have unique values here :(
}
}
$finSQL = rtrim($sql2, ","); // Strip off the remaining ","
我也知道不是绑定参数,一旦我得到了真正的硬东西,我会的。
现在,在转储 $finSQL 时,我得到了这个:
string(152) "INSERT INTO `product_features` (Colors_All,Colors_Bright_All) VALUES ('Black', 'Black'),('Charcoal', 'Charcoal'),('Silver', 'Silver'),('White', 'White')"
如何让唯一值成为插入查询中的 VALUES?这是让我感到困惑的最后一部分。