我有以下mysql语句:
INSERT INTO rates_try (`Weight`, `length`, `height`, `Min`, `100`, `200`, `300`) VALUES (1000,0.1,2.3,1,2,3,4);
出现错误:
没有创建行。检查SQL语法中有错误;检查 手册,对应右边的MySQL服务器版本 在第1INSERT INTO rates_try行的'insertquery'附近使用的语法 (
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);
答案 0 :(得分:5)
$queryResult = mysqli_query($con, insertquery);
你现在能看到吗?
($
)前面缺少insertquery
答案 1 :(得分:0)
这是一个有趣的,因为您实际上遵循了使用反引号来围绕列名称的规则 - 并且根据document I just checked,您的列名确实有效:
标识符可以以数字开头,但除非引用可能不仅仅由数字组成。
在这方面,虽然Windows上的MySQL标识符不具有区分性,但您会发现在Linux上,它们是。你确定你在某个地方没有错过大写或小写吗?您的第一列使用大写字母开始,但其他列都没有。
但是我会说使用必须反向标记的列名通常是一个不好的想法。使用不需要特别小心的东西。