2017-05-26 60 views
-3

我試圖更新2列,ratedimdb_rating所有的值在一個MySQL表中從一個數組在PHP中。 $data是一個2維數組。該數組從javascript發佈。沒有錯誤顯示,除了桌子上什麼都沒有發生,一切似乎都沒有問題;沒有記錄正在更新。 echo json_encode(0)確實返回0,但沒有記錄正在更新。我最擔心的是die(mysqli_error($con));沒有返回任何錯誤。我哪裏做錯了?UPDATE MYSQL TABLE FOR FOR LOOP IN PHP

if($con){ 
     $data=$_POST['dat']; 
     $count=sizeof($data); 

     for($i=0;$i<$count;$i++){ 
     $sql="UPDATE `movies2` SET `rated`='$data[$i][2]' WHERE `movie_ID`='$data[$i][0]'"; 
     $sql2="UPDATE `movies2` SET `imdb_rating`='$data[$i][1]' WHERE `movie_ID`='$data[$i][0]'"; 
     $result=mysqli_query($con,$sql); 
     $result2=mysqli_query($con,$sql2); 
    } 

     if($result && $result2){ 
      echo json_encode(0); 
     } 
     else{ 
      echo json_encode(1); 
      die(mysqli_error($con)); 
     } 
    } 
+0

不包括查詢內生$ _ POST數據。閱讀關於SQL注入。你是否試圖迴應你的疑問?你會看到他們有什麼問題。 – ElChupacabra

+1

如果你echo''sql'和'$ sql2',那麼這些值是否像你期望的那樣正確填入?如果您在phpMyAdmin中複製/粘貼該查詢,是否正確更新數據庫? – rickdenhaan

+0

是的sql語句在phpMyAdmin中工作正常 – mwaniki

回答

0

我認爲這可能適合你。

If Database Like Be

如果你$_POST['dat']像下面。

 <?php 
      $_POST['dat']= array(array('1234','imdb_rating1','rated1'),array('2345','imdb_rating2','rated2')); 

      $servername = "localhost"; 
      $username = "root"; 
      $password = ""; 
      $database = 'test'; 

     $con = mysqli_connect($servername, $username, $password, $database); 
     if($con){ 
     $data=$_POST['dat']; 
     $count=sizeof($data); 

     for($i=0;$i<$count;$i++){ 
      $data0 = $data[$i][0]; 
      $data1 = $data[$i][1]; 
      $data2 = $data[$i][2]; 
     $sql="UPDATE `movies2` SET `imdb_rating`='".$data1."', `rated`='".$data2."' WHERE `movie_ID`='".$data0."'"; 
     $result=mysqli_query($con,$sql); 
    } 

     if($result){ 
      echo json_encode(0); 
     } 
     else{ 
      echo json_encode(1); 
      die(mysqli_error($con)); 
     } 
    } 
       ?> 

Result Will Be Like

0

顯然錯誤在$data[$i][2]。使用{$data[$i][2]}而不是工作正常。謝謝。

0

標準PHP安裝中沒有特殊的庫,並且使用點運算符實現了字符串連接:像這樣更改代碼。

$sql="UPDATE `movies2` SET `rated`='".$data[$i][2]."' WHERE `movie_ID`='".$data[$i][0]."'"; 

$ SQL2 = 「UPDATE movies2 SET imdb_rating = '」。$數據[$ i]於[1]。 「 'WHERE movie_ID ='」 $。數據[$ i] [0]。 「'」 ;