PHP kézikönyv Előző Következő Az OCINewDescriptor() tárterületet foglal le leírók vagy LOB lokátorok tárolására. A type lehetséges értékei OCI_D_FILE, OCI_D_LOB és OCI_D_ROWID. LOB leírók esetén a a load, save és savefile metódusokat használhatod, a BFILE csak a load metódust támogatja. Lásd a második példa használati tippjeit. Példa 1. ?php / * Ez a program űrlapból történő meghíváshoz készült. * A $felhasznalo, $jelszo, $tabla, $where és $commitmeret * értékeket várja az űrlapból. A program letörli a kiválasztott * sorokat a ROWID felhasználásval, és minden $commitmeret sor * után egy tranzakció végrehajtást eszközöl. Használd óvatosan, * a műveletek nem visszavonhatóak. * / $conn = OCILogon( $felhasznalo, $jelszo); $stmt = OCIParse($conn ,"select rowid from $tabla $where"); $rowid = OCINewDescriptor($conn,OCI_D_ROWID); OCIDefineByName($stmt ,"ROWID", $rowid); OCIExecute($stmt); while (OCIFetch($stmt)) {$sorokszama = OCIRowCount($stmt); $delete = OCIParse($conn ,"delete from $tabla where ROWID = :rid"); OCIBindByName($delete ,":rid", $rowid,-1,OCI_B_ROWID); OCIExecute($delete); print "$sorokszama\n"; if (($sorokszama% $commitmeret) == 0) {OCICommit($conn);}} $sorokszama = OCIRowCount($stmt); print "$sorokszama sor törölve...\n"; OCIFreeStatement($stmt); OCILogoff($conn);? ?php / * Ez a program LOB mezőbe állomány feltöltést mutat be. * Az űrlapmező, amit a példa feltételez a következő: * form action=" upload.php "method="post" enctype="multipart / form-data "* input type="file" name="lob_upload "*... * / if(!isset($lob_upload) | | $lob_upload == 'none') {? form action="upload.php" method="post "enctype="multipart / form-data" Upload file: input type="file "name="lob_upload" br input type="submit "value="Feltöltés" - input type="reset "/ form ?php} else {/ / $lob_upload tartalmazza a feltöltött file ideiglenes állomány nevét / / lásd még az állomány feltöltésről szóló részt biztonságos / / file feltöltés példák érdekében $conn = OCILogon($felhasznalo, $jelszo); $lob = OCINewDescriptor($conn, OCI_D_LOB); $stmt = OCIParse($conn ,"insert into $tabla (id, a_blob) values(my_seq.NEXTVAL, EMPTY_BLOB()) returning a_blob into :a_blob"); OCIBindByName($stmt, ':a_blob', $lob, -1, OCI_B_BLOB); OCIExecute($stmt, OCI_DEFAULT); if($lob - savefile($lob_upload)) {OCICommit($conn); echo "A Blob feltöltése sikeres\n"; }else {echo "Nem sikerült feltölteni a Blobot\n";} OCIFreeDesc($lob); OCIFreeStatement($stmt); OCILogoff($conn);}? Példa 2. ?php / * PL / SQL tárolt eljárások hívása, amik clobs bemeneti paramétereket * tartalmaznak (PHP 4 = 4.0.6). * * PROCEDURE adat_mentes * Argumentum neve Típus KI / BE Alapérték * ----------------------------- - ---------------------- - ----- - -------- - * KULCS NUMBER(38) BE * ADAT CLOB BE * * / $conn = OCILogon($felhasznalo, $jelszo); $stmt = OCIParse($conn, "begin adat_mentes(:kulcs, :adat); end ;"); $clob = OCINewDescriptor($conn, OCI_D_LOB); OCIBindByName($stmt, ':kulcs', $kulcs); OCIBindByName($stmt, ':adat', $clob, -1, OCI_B_CLOB); $clob - WriteTemporary($adat); OCIExecute($stmt, OCI_DEFAULT); OCICommit($conn); $clob - close(); $clob - free(); OCIFreeStatement($stmt);? Előző Tartalom Következő Fel