2016-07-09 6 views
0

Hier gehen wir, wenn ich versuche, meine erste Abfrage ausführen und Daten eingefügt, aber meine zweite Abfrage nicht funktioniert.Zum gleichen Zeitpunkt, um die erste Query zu kommentieren Zweite gut funktioniert. beides bedeutet, ich stecke festWarum dieser PHP-Code nicht richtige Wege einfügen

if($order_no!="" && $cus_name!="") 
    { 
     //fs_code: set primary key into auto means use this qry before inserting 
     $query1 = "SET IDENTITY_INSERT order_creation ON"; 
     $stmt1 = sqlsrv_query($conn, $query1); 

     $sql = "INSERT INTO order_creation (order_no,cus_name,cus_id,types,created_date,Status,id) VALUES('$order_no','$cus_name','$cus_id','$type',FORMAT(CURRENT_TIMESTAMP,'M/d/yyyy h:mm:sstt'),'$Status','$fmax')"; 

     if(sqlsrv_query($conn,$sql)) 
      { 
       echo 'success-1'; 
      } 
     else 
      { 
       echo 'failure-1'; 
      } 
    } 
for($i=0;$i<count($goods_name);$i++) 
    {  
     if($goods_name[$i]!="") 
      {      
       $sql = "INSERT INTO order_Goods (order_no,goods_name,goods_qty,date,created_date,Balance_Qty,Supply_Qty,ProductPrice,id) VALUES('$order_no','$goods_name[$i]','$goods_qty[$i]',FORMAT(CURRENT_TIMESTAMP,'d/MM/yy h:mm:sstt'),'$created_date[$i]','$goods_qty[$i]','$Supply_Qty','$ProductPrice[$i]','$get_maxres')"; 

       if(sqlsrv_query($conn,$sql)) 
        { 
         echo 'success-2'; 
        } 
       else 
        { 
         echo 'failure-2'; 
        } 
       $get_maxres++; 
      } 
    } 

sqlsrv_close($conn); 
+1

Sie verwenden SQL-Server, warum diese mit MySQL Tag haben? Weißt du den Unterschied nicht? – Barmar

+0

Sorry Mistake ist meins @Barmar und Danke – AndroidBoy

Antwort

2

Sie verwenden nicht die richtige Syntax, um einen Array-Wert in eine Zeichenfolge zu ersetzen. Wenn der Array-Index eine Variable enthält, müssen Sie die "komplexe" Syntax verwenden, wobei die Array-Variable von {} umgeben ist.

$sql = "INSERT INTO order_Goods (order_no,goods_name,goods_qty,date,created_date,Balance_Qty,Supply_Qty,ProductPrice,id) 
    VALUES('$order_no','{$goods_name[$i]}','{$goods_qty[$i]}',FORMAT(CURRENT_TIMESTAMP,'d/MM/yy h:mm:sstt'),'{$created_date[$i]}','{$goods_qty[$i]}','$Supply_Qty','{$ProductPrice[$i]}','$get_maxres')"; 

Siehe Abschnitt -Variablenverarbeitung in der PHP-Strings Dokumentation.

Sie müssen auch IDENTITY_INSERT in der zweiten Tabelle aktivieren. Setzen Sie diese vor der for Schleife:

sqlsrv_query($conn, "SET IDENTITY_INSERT order_creation OFF"); 
sqlsrv_query($conn, "SET IDENTITY_INSERT order_Goods ON"); 
+0

Danke für die Antwort, aber über die Abfrage nicht beheben mein Problem @Barmar – AndroidBoy

+0

Sagt es 'failure-2'? Verwenden Sie 'var_dump (sqlserv_errors ($ conn))' ', um den Fehler zu sehen. – Barmar

+0

ja, failure-2 und wo kann ich "var_dump (sqlserv_errors ($ conn))" – AndroidBoy

0

ja i fix dieses

SET IDENTITY_INSERT Table1 ON 

INSERT INTO Table1 
/*Note the column list is REQUIRED here, not optional*/ 
      (OperationID, 
      OpDescription, 
      FilterID) 
VALUES  (20, 
      'Hierachy Update', 
      1) 

SET IDENTITY_INSERT Table1 OFF 
Verwandte Themen