phpbar.de logo

Mailinglisten-Archive

[php] RE: [php] =?iso-8859-1?Q?Problem?= =?iso-8859-1?Q?e_bei_Einf=FCgen?= in Oracle-Datenbank

[php] RE: [php] Problem e bei Einfügen in Oracle-Datenbank

Thies C. Arntzen php_(at)_phpcenter.de
Fri, 11 May 2001 10:30:28 +0200


On Fri, May 11, 2001 at 09:52:14AM +0200, Juri.Smarschevski wrote:
> > -----Original Message-----
> > From: php-admin_(at)_phpcenter.de [mailto:php-admin_(at)_phpcenter.de]On Behalf Of
> > Christopher Nehls
> > Sent: Thursday, May 10, 2001 7:47 PM
> > To: php_(at)_php-center.de
> > Subject: [php] Probleme bei Einfügen in Oracle-Datenbank
> >
> >
> > Nabend!
> Hi Christopher
> 
> > Ich möchte über ein Skript ein größere Menge von Datensätzen in eine
> > Oracle-Tabelle einfügen.
> > Bei ca 3% der Datensätze klappt es leider nicht so wie gewünscht: Es sind
> > die Datensätze, die ein Hochkomma ( ' ), was ja die einzelnen Werte im
> > SQL-Befehl voneinander trennt. Wie kann ich mittels PHP-Befehlen das
> > Scheiß-Ding maskieren, dass es trotzdem richtig in der Datenbank ankommt
> 
> IMHO werden die ' im Oracle auch mit ' maskiert.
> 
> ...WHERE Feld="It''s not possible"

    am besten benutzt du bind:

    <?php
 
        $data = array("larry","bill","steve");
 
        $db = OCILogon("scott","tiger");
        $stmt = OCIParse($db,"insert into names values (myid.nextval,:name) returning id into :id");
        OCIBindByName($stmt,":ID",$id,32);
        OCIBindByName($stmt,":NAME",$name,32);
 
        while (list(,$name) = each($data)) {
            OCIExecute($stmt);
            echo "$name got id:$id\n";
        }
    ?>

    das ist viel schneller, und du brauchst nix zu escapen.

    tc


php::bar PHP Wiki   -   Listenarchive