2014-07-19 104 views
0

我想用我的第一個查詢的結果來插入第二個查詢,在sintaxis中沒有錯誤。Mysqli第二個查詢不起作用

我一直在閱讀很多東西,但似乎任何工作。

幫助!!!!

$sql = "CALL sp_producto(1);"; 
    $rs = $mysqli->query($sql); 
    $idNuevo; 
    if ($fila = $rs->fetch_assoc()) { 
     $idNuevo = $fila['idNew']; //recupera el id del insertado 
     $talleres = explode(",", $_POST["proceso_prod"]); 
     foreach ($talleres as $t) { 
      //THIS DOESN'T WORK BUT IDONT KNOW WHY 
      $sql = "INSERT INTO proceso_produccion() VALUES (" . $idNuevo . ", ".$t.")"; 
      echo $sql; 
      $mysqli->query($sql); 
     } 
    } 
+0

從'INSERT INTO proceso_produccion()'中刪除'()',並從CALL sp_producto(1);' – Rahul

回答

0
INSERT INTO proceso_produccion() VALUES (" . $idNuevo . ", ".$t.") 

此行是問題,如果要插入的所有表列的值沒有必要有這個() ,你的代碼改成這樣:

INSERT INTO proceso_produccion VALUES (" . $idNuevo . ", ".$t.")

但是如果您只插入某一列,則必須指定列名稱,

像這樣:

INSERT INTO proceso_produccion ('firstColumn','anotherColumn') VALUES (" . $idNuevo . ", ".$t.")

+0

中刪除';'謝謝,但這不是問題。 問題是,我不能使用mysqli-> real_query兩次 –

0

娘正確回答,還要檢查一下,如果你正在進入這兩個值都是整數。否則,應在引號,像這樣:

INSERT INTO proceso_produccion ('firstColumn','anotherColumn') VALUES ('" . $idNuevo . "', '".$t."') 

而且,這種情況是不是一個真正的條件:

if ($fila = $rs->fetch_assoc()) { 

你只是這樣分配值$ FILA。它應該是:

if ($fila == $rs->fetch_assoc()) { 

最後,如果查詢仍然無法正常工作,可以請您發佈回顯查詢,echo $ sql的結果。

+0

第一個查詢效果很好,但第二個沒有,我已經在$ sql屏幕上打印,如果我將它粘貼到mysql中,它工作正常,我不知道爲什麼,但我可以在相同的代碼中使用mysq-> real_query兩次。 –

+0

那麼,如果你確信它第一次工作,它就必須工作。我能想到的唯一可能的原因是這個塊沒有被執行。你確定數組$ talleres不是空的嗎? – schrink