我有很多变量,我正在从我网站上的所有产品页面添加到数据库中。这是我的PHP代码:
$args = (array(
"post_type" => "page",
"meta_key" => "_wp_page_template",
"meta_value" => "products.php",
"posts_per_page" => 50
));
$queryPages = get_posts($args);
$con= mysqli_connect("localhost","pmdot","password","pmd_ot");
foreach($queryPages as $qp) {
$qpID = $qp->ID;
$name = get_post_meta($qpID, "pmd_name", true);
$code = get_post_meta($qpID, "pmd_sku", true);
$installation = get_post_meta($qpID, "pmd_installation", true);
$age = get_post_meta($qpID, "pmd_agefrom", true);
$length = get_post_meta($qpID, "pmd_length", true);
$width = get_post_meta($qpID, "pmd_width", true);
$height = get_post_meta($qpID, "pmd_height", true);
$areal = get_post_meta($qpID, "pmd_areal", true);
$areaw = get_post_meta($qpID, "pmd_areaw", true);
$cfh = get_post_meta($qpID, "pmd_cfh", true);
$weight = get_post_meta($qpID, "pmd_weight", true);
$type[] = get_post_meta($qpID, "pmd_playtype", true);
$accred[] = get_post_meta($qpID, "pmd_accreditation", true);
$descr = get_post_meta($qpID, "pmd_shortdesc", true);
$price = get_post_meta($qpID, "pmd_price", true);
mysqli_query($con, 'INSERT INTO pmd_productdata (Product_ID, Product_Name, Product_Code, Product_Installation, Age_Range, Product_Length, Product_Width, Product_Height, Minimum_Area_L, Minimum_Area_W, C_F_H, Product_Weight, Play_Type, Accreditations, Product_Desc, Product_Price)
VALUES ($qpID, $name, $code, $installation, $age, $length, $width, $height, $areal, $areaw, $cfh, $weight, "placeholder", "placeholder", $descr, $price') or die ('Error:' .mysqli_error($con));
}
这样做是使用模板products.php
获取所有帖子,然后使用所有自定义字段用查询填充SQL表。
注意:您可以看到的数组当前未在查询中使用,因为我认为这是问题所在。如果有人可以帮助我获取该数组中的所有值以显示在相应字段中,则可获得奖励。
我的表中的所有列都有varchar(255)作为它们的char基础,以防万一它们应该是INT。
出于某种原因,我收到了这个错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
现在,你可以看到错误还不清楚,如果有人能够对这种情况有所了解,我将非常感激。
我的问题是:为什么我会收到错误,这是什么意思?
现在我收到一个新的错误,我修复了VALUES()问题:
Unknown column '$qpID' in 'field list'
这是因为我需要将变量与查询分开:例如:
'VALUES (' . $qpID . ', ' . $name . ')' etc.;
错误现已修复,数据在SQL数据库中,我现在需要的是弄清楚如何让2个数组将所有值打印到相应的列中。
答案 0 :(得分:3)
以下是(
遗失:
$price')
应:
$price)')
答案 1 :(得分:2)
如果您使用wordpress,则无需创建新连接。 您可以帮助您:
global $wpdb;
$wpdb->query('INSERT INTO pmd_productdata (Product_ID, Product_Name, Product_Code, Product_Installation, Age_Range, Product_Length, Product_Width, Product_Height, Minimum_Area_L, Minimum_Area_W, C_F_H, Product_Weight, Play_Type, Accreditations, Product_Desc, Product_Price)
VALUES ('".$qpID."', '".$name."', '".$code."', '".$installation."', '".$age."', '".$length."', '".$width."', '".$height."', '".$areal."', '".$areaw."', '".$cfh."', '".$weight."', "placeholder", "placeholder", '".$descr."', '".$price."')');
答案 2 :(得分:1)
mysqli_query($con, 'INSERT INTO pmd_productdata (Product_ID, Product_Name, Product_Code, Product_Installation, Age_Range, Product_Length, Product_Width, Product_Height, Minimum_Area_L, Minimum_Area_W, C_F_H, Product_Weight, Play_Type, Accreditations, Product_Desc, Product_Price)
VALUES ($qpID, $name, $code, $installation, $age, $length, $width, $height, $areal, $areaw, $cfh, $weight, "placeholder", "placeholder", $descr, $price)') or die ('Error:' .mysqli_error($con));
未公开的价值观()
答案 3 :(得分:1)
更新了查询
mysqli_query($con, 'INSERT INTO pmd_productdata (Product_ID, Product_Name, Product_Code, Product_Installation, Age_Range, Product_Length, Product_Width, Product_Height, Minimum_Area_L, Minimum_Area_W, C_F_H, Product_Weight, Play_Type, Accreditations, Product_Desc, Product_Price)
VALUES ("'.$qpID.'", "'.$name.'", "'.$code.'", "'.$installation.'", "'.$age.'", "'.$length.'", "'.$width.'", "'.$height.'", "'.$areal.'", "'.$areaw.'", "'.$cfh.'", "'.$weight.'", "placeholder", "placeholder", "'.$descr.'", "'.$price.'")') or die ('Error:' .mysqli_error($con));
}
答案 4 :(得分:1)
尝试将值变量放在单引号中,如'$qpID','$name'
等,整个查询放在双引号中。