PHP MySQL 插入数组语法
PHP MySQL insert array syntax
我有一个表格,我在其中输入了 2 个值:sku 和 filter_id。然后我获取 sku 并从数据库中检索一个 product_id 的数组,该数组对应于 sku。对于每个 product_id,我需要使用 2 个值将查询插入回数据库:product_id 和 filter_id.
我想在 foreach 循环中构建查询,并在末尾 运行 单个 SQL 查询以有效利用资源。
这是我的 PHP 代码:
// Escape user inputs for security
$sku = mysqli_real_escape_string($db, $_POST['sku']);
$filter_id = mysqli_real_escape_string($db, $_POST['filter_id']);
// Check connection
if ($db->connect_error) {
die("Connection failed: " . $db->connect_error);
}
//get product_id array for requested sku
$sql = "SELECT product_id FROM oc_product WHERE sku = '$sku'";
$product_id_array = $db->query($sql);
if ($product_id_array->num_rows > 0) {
foreach( $product_id_array as $row ) {
$query_row[] = "('$row['product_id']','$filter_id')";
}
$final_query = "INSERT IGNORE INTO oc_product_filter (product_id, filter_id) VALUES " .implode(',', $query_row);
$db->query($final_query);
} else {
echo "no products found.";
}
当前错误是:
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)
那是这一行:$query_row[] = "('$row['product_id']','$filter_id')";
任何人都可以帮助我使用正确的语法吗?
谢谢!
更新您的代码
$query_row[] = "('$row['product_id']','$filter_id')";
^^ ^^
进入
$query_row[] = "('{$row['product_id']}','$filter_id')";
^^ ^^
您需要将数组变量包含在 {}
中
变化自
$query_row[] = "('$row['product_id']','$filter_id')";
至
$query_row[] = "('".$row['product_id']."','".$filter_id."')";
我有一个表格,我在其中输入了 2 个值:sku 和 filter_id。然后我获取 sku 并从数据库中检索一个 product_id 的数组,该数组对应于 sku。对于每个 product_id,我需要使用 2 个值将查询插入回数据库:product_id 和 filter_id.
我想在 foreach 循环中构建查询,并在末尾 运行 单个 SQL 查询以有效利用资源。
这是我的 PHP 代码:
// Escape user inputs for security
$sku = mysqli_real_escape_string($db, $_POST['sku']);
$filter_id = mysqli_real_escape_string($db, $_POST['filter_id']);
// Check connection
if ($db->connect_error) {
die("Connection failed: " . $db->connect_error);
}
//get product_id array for requested sku
$sql = "SELECT product_id FROM oc_product WHERE sku = '$sku'";
$product_id_array = $db->query($sql);
if ($product_id_array->num_rows > 0) {
foreach( $product_id_array as $row ) {
$query_row[] = "('$row['product_id']','$filter_id')";
}
$final_query = "INSERT IGNORE INTO oc_product_filter (product_id, filter_id) VALUES " .implode(',', $query_row);
$db->query($final_query);
} else {
echo "no products found.";
}
当前错误是:
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)
那是这一行:$query_row[] = "('$row['product_id']','$filter_id')";
任何人都可以帮助我使用正确的语法吗? 谢谢!
更新您的代码
$query_row[] = "('$row['product_id']','$filter_id')";
^^ ^^
进入
$query_row[] = "('{$row['product_id']}','$filter_id')";
^^ ^^
您需要将数组变量包含在 {}
变化自
$query_row[] = "('$row['product_id']','$filter_id')";
至
$query_row[] = "('".$row['product_id']."','".$filter_id."')";