两个几乎完全相同的SQL查询,一个工作,另一个不工作

时间:2017-08-05 13:17:05

标签: php mysql sql mysqli insert

我有两个问题,最终几乎完全相同。但由于某种原因,第一个工作完美无缺,第二个工作没有向数据库添加任何内容,也没有给出任何错误。

有效的那个看起来像这样:

public function insertPits($pitstop, $RaceID, $managerId, $seasonNumber, $raceNumber) {

$sqlpit = "insert into pitstop (RaceID,managerid,season,race,PitStopNo,LapNo, Reason,TyreWear,FuelLeft,FuelLoad,PitTime) values "; 
    foreach ($pitstop as $pitstop){ 
      $sqlpit .= "($RaceID,$managerId,$seasonNumber,$raceNumber,$pitstop[0],$pitstop[1],'$pitstop[2]',$pitstop[3],$pitstop[4],$pitstop[5],$pitstop[6]),"; 
    } 
$sqlpit =rtrim($sqlpit,","); 
mysqli_query($GLOBALS["___mysqli_ston"], $sqlpit);
 }

一个不能正常工作的人:

public function insertStints($stints, $RaceID, $managerId, $seasonNumber, $raceNumber) {

$sqlstint = "insert into stint (RaceID,managerid,season,race,StintNo,Tyre) values "; 
    foreach ($stints as $stints) {
      $sqlstint .= "($RaceID,$managerId,$seasonNumber,$raceNumber,$stints[0],$stints[7]),"; 
    } 
$sqlstint =rtrim($sqlstint,","); 
mysqli_query($GLOBALS["___mysqli_ston"], $sqlstint);  
 }

$ pitstop和$ stints都是完全相同的数组,只是名称不同。 pitstop数据库填充正确,stints数据库保持为空而没有错误。

$ sqlstint将此显示为echo,这是正确的..但它不会添加任何内容:

insert into stint (RaceID,managerid,season,race,StintNo,Tyre) 
values (40978,65,60,3,1,Extra Soft),
       (40978,65,60,3,2,Extra Soft),
       (40978,65,60,3,3,Extra Soft)

有没有人知道如何解决这个问题,或者如何以不同方式做到这一点(可能将它们组合成一个函数......但说实话......我也不知道如何做到这一点)。希望得到您的反馈!

0 个答案:

没有答案