【发布时间】:2013-09-05 10:10:47
【问题描述】:
我有下面的mysql语句:
INSERT INTO rates_try (`Weight`, `length`, `height`, `Min`, `100`, `200`, `300`) VALUES (1000,0.1,2.3,1,2,3,4);
这给出了错误:
没有创建行。检查您的 SQL 语法有错误;检查 与您的 MySQL 服务器版本相对应的手册 在第 1 行的“插入查询”附近使用的语法INSERT INTO rates_try (
Weight、length、height、Min、100、200、300) (1500,2.31,3.5,1,0,0,0);
表结构为:
rates_try ( `Weight` int(11),
`length` double,
`height` double,
`Min` double,
`100` double,
`200` double,
`300` double )
我不确定语法有什么问题,我知道它很可能与作为数字的列有关,如果这是导致它的问题,我将不得不在名称中添加一些内容,这样它们就不仅仅是数字,但我想先检查一下情况是否如此。
创建语句的 php 代码
$insertquery = "INSERT INTO rates_{$tablename} (`Weight`, `length`, `height`, `Min`";
foreach ($titles as $title){
if (empty($title) ){
}else{
$insertquery .= ", `" . $title . "`";
$counter++;
}
}
$insertquery .= ") VALUES (".$row['weight'].",".$row['cbm_min'].",".$row['cbm_max'].",".$value;
$a = 0;
while ($a < $counter){
$newvalue = $array[$a][$i];
if (empty($newvalue)){
$newvalue = 0;
}
$insertquery .= ",". $newvalue;
$a++;
}
$insertquery .= ");";
echo $insertquery. "<br/>";
$queryResult = mysqli_query($con, insertquery);
【问题讨论】:
-
你的错误在哪里?见sqlfiddle.com/#!2/324b1/2
-
这个错误似乎不是这个查询引起的。在您的代码中查找
insertquery。也许缺少一些报价? -
不要认为这与numbers for column names 有任何关系。错误说
insertquery,我在您的声明中没有看到,这让我认为这与给出错误的声明不同? -
不要使用数字作为列名。除了技术问题之外,从文档的角度来看,它们也非常糟糕。名为
100的列存储什么?指示其他值等于 100 的布尔标志?独家价值100?完全不同的东西?