这个MYSQL Insert语句中的语法错误是什么

时间:2015-07-16 11:54:53

标签: php mysql

供应商表中的列匹配是BIT类型,用于存储' 1'或' 0'。而匹配ID是SMALLINT。是否必须对错误执行某些操作的列的数据类型。

$sqlB="select pk_id, truckno, station, weight from truck";
$resultB=mysqli_query($con,$sqlB);
$objB= mysqli_fetch_all($resultB,MYSQLI_NUM);   
// some if checks....
$str = $objB[$j][0];
$update = mysqli_query($con, "INSERT INTO vendor (match, matchid) VALUES ('1',$str)") or die(mysqli_error($con)); 

4 个答案:

答案 0 :(得分:2)

MATCH是mysql中的保留字。使用保留字作为列名时必须小心。

在列名称周围使用反引号

$update = mysqli_query($con, "INSERT INTO `vendor` (`match`, `matchid`) VALUES ('1',$str)")

答案 1 :(得分:0)

回溯所有字段/列/表名称

$sql = "INSERT INTO `vendor` (`match`, `matchid`) VALUES ('1',$str)";

答案 2 :(得分:0)

"INSERT INTO `vendor` (`match`, `matchid`) VALUES ('1', '$str')"

跟进问题:

"UPDATE `vendor` SET `match`=1, `matchid`='$str' WHERE `vendor`.`pk` = " . $objA[$i][0];

答案 3 :(得分:0)

您应该为$str变量使用单引号。