0

我的 php 脚本中的以下行出现 sql 语法错误

mysqli_query($con, "INSERT INTO 'rates_{$tablename}' (Weight, CBMMin, CBMMax) VALUES (".$row['weight'].",".$row['cbm_min'].",".$row['cbm_max'].");");

错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ''rates_woop' (Weight, CBMMin, CBMMax) VALUES (1000,0.1,2.3)' 附近使用正确的语法

变量$con是我的连接,工作正常

$tablename只是一个字符串

$row['']是结构如下的数组中的一行

$rows = array(
array('weight' = > 1000, 'cbm_min' = > 0.1, 'cbm_max' = > 2.3),
array('weight' = > 1500, 'cbm_min' = > 2.31, 'cbm_max' = > 3.5),
array('weight' = > 2000, 'cbm_min' = > 3.51, 'cbm_max' = > 4.6),
array('weight' = > 2500, 'cbm_min' = > 4.61, 'cbm_max' = > 5.75),
array('weight' = > 3000, 'cbm_min' = > 5.75, 'cbm_max' = > 6.9),
array('weight' = > 3500, 'cbm_min' = > 6.91, 'cbm_max' = > 8));

所以查询在 foreach 循环中

4

2 回答 2

4

不要引用表名:

mysqli_query($con, "INSERT INTO rates_{$tablename} (Weight, CBMMin, CBMMax) VALUES (".$row['weight'].",".$row['cbm_min'].",".$row['cbm_max'].")");

如果需要,请使用`

mysqli_query($con, "INSERT INTO `rates_{$tablename}` (Weight, CBMMin, CBMMax) VALUES (".$row['weight'].",".$row['cbm_min'].",".$row['cbm_max'].")");
于 2013-08-29T07:39:33.070 回答
0
<?php

$rows = array(
                array('weight' => 1000, 'cbm_min' => 0.1, 'cbm_max' => 2.3 ),
                array('weight' => 1500, 'cbm_min' => 2.31, 'cbm_max' => 3.5 ),
                array('weight' => 2000, 'cbm_min' => 3.51, 'cbm_max' => 4.6 ),
                array('weight' => 2500, 'cbm_min' => 4.61, 'cbm_max' => 5.75 ),
                array('weight' => 3000, 'cbm_min' => 5.75, 'cbm_max' => 6.9 ),
                array('weight' => 3500, 'cbm_min' => 6.91, 'cbm_max' => 8 )
            );

// Create connection
$con=mysqli_connect("localhost","root","","test");//place your host name username and password

// Check connection
if (mysqli_connect_errno($con))
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
//$result = mysqli_query($con,"SELECT * FROM mytb "); 

foreach ($rows as $row)
{
$weight=$row['weight'];
$cbm_min=$row['cbm_min'];
$cbm_max=$row['cbm_max'];
$query="insert into mytb values ('$weight','$cbm_min','$cbm_max')";//place your table name over there
mysqli_query($con,$query);
}

?>
于 2013-08-29T08:03:47.907 回答