Sqlplus Feldelemte In Datenbank Eintragen

tobiastt

Erfahrenes Mitglied
Hallo

ich arbeite mit SQLPLUS und PHP. Ich habe ein Feld $datenfeld und möchte die Werte des Feldes in die Datenbank eintragen. Wie kann ich es machen Zur Zeit trage ich jedes Element einzeln ein.

$stmte1 = ociparse($conn,"insert into datenname.tabelle values(
$x1[0],'$x1[1]',$x1[2],$x1[3],$x1[4],$x1[5],$x1[6],$x1[7],$x1[8],$x1[9])");

ociexecute($stmte1);

Das geht bei 10 Datensätzen aber bei mehreren ist es aufwendig.

Würde mich über eine Lösugn freuen...

Gruß TObi
 
Zunächst: Du arbeitest mit Oracle, SQL*Plus ist nur die Kommandokonsole für Oracle.
Ich hab leider nicht ganz verstanden wo dein Problem liegt ? Du hast viele Daten und willst die per PHP in die Datenbank schreiben ?

Wenn du Zugriff auf SQL*Plus hast, brauchst du ja kein PHP, ansonsten, wenn die Daten in einem guten Format vorliegen kannst du doch in PHP eine Schleife um dein Insert machen.
Bei Massen Daten ( > 1000 Sätze wür dich sagen ) lohnt sich auch die Oracle Data Pump bzw. der SQL*Loader ( < Oracle Version 10g )
 
ja eine Schleife um das Insert würde mich interessieren. Aber da wird ja bei jeden Schleifendurchlauf ein Datensatz in die DB gespeichert. Ich will ja alle auf einmal in eine Tabelle bekommen! Es sind bei mir 238 Parameter die eingefügt werden müssten.

Gruß Tobi
 
Du meinst 238 Spalten in einem Datensatz ? Wenn das der Fall ist, solltes du mal über das Datenmodell nachdenken, ist nicht besonders gut.

Wenn du so viele Spalten hast, kannst du dir per Schleife das SQL Statement zusammenbauen:
Code:
UNGETESTET!
<?php
  $values = Array( 1, 2,3, 4, 5, 6, 7 ... );
  $sql = "INSERT INTO table VALUES ( ";
  for( $i = 0; $i < sizeof( $values ), $i++ )
  {
    $sql .= "'" . $values[ $i ] . "'";
    if( $i != sizeof( $values - 1 ){ $sql .=  ", ";
  }
  $sql .= ")";
  $stmt = ociparse( $conn, $sql );
  ociexecute( $stmt );
?>
 
Zurück