PHP+Oracle

Sekcia: Programovanie 04.09.2008 | 00:56
Avatar Kapo Debian  Používateľ
Potreboval by som nasledujucu radu. Bol som nuteny naucit sa ako pracuje Oracle s PHP. Po precitani asi 10 navodov som nakoniec rozbehal skusobny Oracle-XE s oci modulom pre PHP a na mojom Debian stroji to slapalo. Problem je vsak nasledovny: Potrebujem dostavat udaje z Oracle, ktora bezi na externej masine s tym ze do externej masiny sa za ziadnu cenu nemoze nic instalovat. Pri MySQL by som povolil vzdialeny pristup, zadal IP a prihlasovacie udaje a mal by som poriesene, bohuzial teraz si neviem rady.. Ma niekto podobnu skusenost?

Dakujem
    • Re: PHP+Oracle 04.09.2008 | 01:44
      WlaSaTy   Návštevník
      No a co Ti brani nainstalovat orale klienta, nastavit mu korektne hodnoty do tnsnames a prihlasit sa cez user/pass@SID? Odporucim este kuknut ci zodpovedajuce porty neblokujes firewallom.
      • Re: PHP+Oracle 04.09.2008 | 04:46
        Avatar Kapo Debian  Používateľ
        To som vyskusal, mam ale dalsi problem.. Vyskytuje sa aj ked sa hlasim k databaze na lokalnom pocitaci..

        Chyba znie: Parse error: syntax error, unexpected T_STRING in /var/www/test.php on line 2
        PHP kod ktorym sa pripajam je nasledovny:
        <?php
        $odbc = oci_connect(user, heslo, Oracle SID) or die( 'Could not connect the Oracle database!');
        if ($odbc == false)
        {$msg = OCI_Error($odbc);}
        else
        {echo 'Your Oracle Connection is working properly!';}
        ?>

        tnsnames.ora je nasledovny:
        Oracle SID =
        (DESCRIPTION =
        (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.63)(PORT = 1521))
        )
        (CONNECT_DATA =
        (SID = Oracle SID)
        )
        )

        Mal by som este otazku, na co konkretne sluzi SID. Pracujem s tym iba druhy den a musim teda povedat ze s MySQL je omnoho menej problemov :)
        • Re: PHP+Oracle 04.09.2008 | 04:50
          Avatar Samuel BWPOW Kupka Almalinux, OpenWRT  Používateľ
          No, skus sa pozriet na ten druhy riadok, na manualovu stranku daneho prikazu a dalej na tebou zadany treti parameter a urcite najdes problem. A mozno aj prvy a druhy parameter, netusim totiz, ako to mas zapisane.
          Strach dát najevo své pocity a zjednat si u druhých respekt je jedním z problémů civilizovaného člověka, který se naučil zpochybňovat svou vlastní pravdu pro zdání objektivity
          • Re: PHP+Oracle 04.09.2008 | 05:13
            Avatar Kapo Debian  Používateľ
            No teraz som to skusil podla manualu aby som aspon videl stav a teda:
            <?php
            $username="user";
            $password="pass";
            $db="";
            $charset="utf8";
            $session_mode="OCI_DEFAULT";

            resource oci_connect ( string $username , string $password [, string $db [, string $charset [, int $session_mode ]]] )
            ?>

            A dostal som prazdnu obrazovku :) Za $db som si dosadzal aj SIDko a nic..
            • Re: PHP+Oracle 04.09.2008 | 11:13
              Avatar Samuel BWPOW Kupka Almalinux, OpenWRT  Používateľ
              Hmm, s php si zatial vela toho nerobil, vsak?
              Strach dát najevo své pocity a zjednat si u druhých respekt je jedním z problémů civilizovaného člověka, který se naučil zpochybňovat svou vlastní pravdu pro zdání objektivity
              • Re: PHP+Oracle 05.09.2008 | 14:31
                Avatar Kapo Debian  Používateľ
                Nie, tak prosim kde je chyba?
                • Re: PHP+Oracle 05.09.2008 | 15:23
                  Avatar Samuel BWPOW Kupka Almalinux, OpenWRT  Používateľ
                  V manuali je pre kazdu premennu a parameter uvedeny typ, ktory treba dodrzat. Cize malo byt to vyzerat nejako takto:
                  $odbc = oci_connect('user', 'heslo','Oracle SID') or die( 'Could not connect the Oracle database!');
                  
                  Strach dát najevo své pocity a zjednat si u druhých respekt je jedním z problémů civilizovaného člověka, který se naučil zpochybňovat svou vlastní pravdu pro zdání objektivity
                  • Re: PHP+Oracle 06.09.2008 | 20:31
                    Avatar Kapo Debian  Používateľ
                    Sklamem, ale zas mam chybu:
                    Parse error: syntax error, unexpected T_STRING in /var/www/test.php on line 2
                    • Re: PHP+Oracle 06.09.2008 | 20:35
                      Avatar Samuel BWPOW Kupka Almalinux, OpenWRT  Používateľ
                      Tak posli ten riadok, ale presne tak, ako ho mas v zdrojaku.
                      Strach dát najevo své pocity a zjednat si u druhých respekt je jedním z problémů civilizovaného člověka, který se naučil zpochybňovat svou vlastní pravdu pro zdání objektivity
                      • Re: PHP+Oracle 06.09.2008 | 21:56
                        Avatar Kapo Debian  Používateľ
                        Ono ja som vygooglil zaujimavy script ktory mi automaticky stiahol, rozbalil, skompiloval oracle-xe s potrebnym OCI modulom pre PHP a v /var/www/ mi vytvoril testovaci php script a hned po prvom spusteni mi pisal toto. Ked dam zle udaje, mi napise nemoze sa pripojit k databazi, zly login, ale ked je login a zvysne info spravne dostanem vyssie pastnutu chybu. Posielam cely PHP script, presne tak ako ho mam:
                        <?php
                        $odbc = ocilogon(system, hiwgacuw, Oracle SID) or die( 'Could not connect the Oracle database!');
                        ?>



                        • Re: PHP+Oracle 06.09.2008 | 22:05
                          Avatar Kapo Debian  Používateľ
                          Pardon, ked pouzijem pripojenie pomocou funkcie oci_connect() tak dostanem:

                          Warning: oci_connect() [function.oci-connect]: ORA-12154: TNS:could not resolve the connect identifier specified in /var/www/test.php on line 2

                          ked si pustim phpinfo() v sekcii oci8 je nasledovne:

                          OCI8 Support enabled
                          Version 1.3.4
                          Revision $Revision: 1.269.2.16.2.38.2.20 $
                          Active Persistent Connections 0
                          Oracle Instant Client Version 10.2
                          Temporary Lob support enabled
                          Collections support enabled

                          Directive Local Value Master Value
                          oci8.connection_class no value no value
                          oci8.default_prefetch 100 100
                          oci8.events Off Off
                          oci8.max_persistent -1 -1
                          oci8.old_oci_close_semantics Off Off
                          oci8.persistent_timeout -1 -1
                          oci8.ping_interval 60 60
                          oci8.privileged_connect Off Off
                          oci8.statement_cache_size 20 20
                        • Re: PHP+Oracle 07.09.2008 | 23:08
                          WlaSaTy   Návštevník
                          To "Oracle SID" ma byt ORACLE_XE, teda jedna sa o oracle System IDentificator. Ludovo je to nazov databazy, mierne odbornejsie je to nazov instancie (databaza ich moze obsahovat viacej, ale to sa netyka orale 10.2 expres edition.