【发布时间】:2017-12-30 09:02:03
【问题描述】:
注意:这个问题是根据我上一个问题here
下面的 SQL 语法有什么问题?
$sql = "ALTER TABLE products ADD ".$supplier_name_ . $p." varchar(500) AFTER supplier_info_1";
它正在产生以下错误:
您的 SQL 语法有误;检查与您的 MariaDB 服务器版本相对应的手册,以了解要使用的正确语法 在第 1 行的 '"Array" varchar(500) AFTER supply_info_1' 附近
更新:
supplier_name_ . $p 来自这个 for 循环:
// supplier info
$supplier_name_1 = $_POST['supplier_name_1'];
$supplier_sending_1 = $_POST['supplier_sending_1'];
$supplier_guarantee_1 = $_POST['supplier_guarantee_1'];
$supplier_price_1 = $_POST['supplier_price_1'];
$supplier_colors_1 = $_POST['supplier_colors_1'];
$supplier_info_1 = array($supplier_name_1, $supplier_sending_1, $supplier_guarantee_1, $supplier_price_1, $supplier_colors_1);
$proSupply_1 = json_encode($supplier_info_1);
for($p=2;$p<=5;$p++){
$supplier_name_ . $p = $_POST['supplier_name_'.$p.''];
$supplier_sending_ . $p = $_POST['supplier_sending_'.$p.''];
$supplier_guarantee_ . $p = $_POST['supplier_guarantee_'.$p.''];
$supplier_price_ . $p = $_POST['supplier_price_'.$p.''];
$supplier_colors_ . $p = $_POST['supplier_colors_'.$p.''];
$supplier_info_ . $p = array($supplier_name_ . $p, $supplier_sending_ . $p, $supplier_guarantee_ . $p, $supplier_price_ . $p, $supplier_colors_ . $p);
$proSupply_ . $p = json_encode($supplier_info_ . $p);
if(!empty($supplier_name_ . $p)&&(!empty($supplier_sending_ . $p))&&(!empty($supplier_guarantee_ . $p))&&(!empty($supplier_price_ . $p))&&(!empty($supplier_colors_ . $p))){
$sql = "ALTER TABLE products ADD '.$supplier_name_ . $p.' varchar(500) AFTER supplier_info_1";
if ($con->query($sql) === TRUE){
$insert_suppliers = "
INSERT INTO `products` (`supplier_info_" . $p . "`)
VALUES ('$proSupply_" . $p . "')
";
$run_suppliers = mysqli_query($con,$insert_suppliers);
if(!$run_product){
error_reporting(E_ALL);
die(mysqli_error($con));
}
}else{
error_reporting(E_ALL);
die(mysqli_error($con));
}
}
}
【问题讨论】:
-
将 '.$supplier_name_ 处的双引号改为单引号。 $p.'
-
@Deep 你介意看看我添加的更新。根据我的最后一个问题,您已经访问过它。
-
尝试在 'supplier_info_1' 周围加上单引号