由SQL foreach生成的SQL语法错误

时间:2017-06-14 17:53:03

标签: php mysql

我不知道为什么第二轮foreach给我这个错误:

  

"您的SQL语法出错了;检查与您的MySQL服务器版本对应的手册,以便在#8; 8,1)附近使用正确的语法。在第2行"

$Ntavolo = Array ( [0] => 46 [idordine] => 46 ) ;
$queryordine= "SELECT `idordine` FROM `ordine` WHERE `tavolo`=$Ntavolo ORDER BY `ordine`.`dataora` DESC LIMIT 1";
$result = mysqli_query($con,$queryordine);
$array=Array ( [0] => Array ( [id] => 1 [qta] => 1 ) [1] => Array ( [id] => 8 [qta] => 1 ) ) ;  
foreach($array as $value){
    $row  = mysqli_fetch_array($result);
        print_r($row);
        print_r($array);
    $idordine=$row['idordine'];
    $queryinsert="INSERT INTO `dettaglio` (`iddettaglio`, `idordine`, `idprodotto`, `quantita`)
    VALUES (NULL, ".$idordine.",".$value['id'].",".$value['qta'].");";
    mysqli_query($con,$queryinsert)or die(mysqli_error($con));
    echo($queryinsert);
};?>

2 个答案:

答案 0 :(得分:0)

 $queryinsert="INSERT INTO `dettaglio` (`iddettaglio`, `idordine`, `idprodotto`, `quantita`)
VALUES (NULL, ".$idordine.",".$value['id'].",".$value['qta'].");";

此处只应提供一个终止; 你已插入两个终止

 $queryinsert="INSERT INTO `dettaglio` (`iddettaglio`, `idordine`, `idprodotto`, `quantita`)
    VALUES (NULL, ".$idordine.",".$value['id'].",".$value['qta'].")";

答案 1 :(得分:0)

错误在$ row中,在第二个查询$ row中没有取值... 谢谢大家!!!

$row  = mysqli_fetch_array($result);
$idordine=$row['idordine'];
foreach($array as $value){
$queryinsert="INSERT INTO `dettaglio` (`iddettaglio`,`idordine`,`idprodotto`,`quantita`)VALUES (NULL,".$idordine.",".$value['id'].",".$value['qta'].")";
mysqli_query($con,$queryinsert)or die(mysqli_error($con));};