Oracle veritabanına bağlanmak nasıl?

5 Cevap php

Nasıl MAC OS X üzerinde PHP kullanarak Oracle bağlanmak mı?

5 Cevap

Ben OCI gitmek için yol olacağını düşünürdüm. PHP module bunun için vardır.

PDO soyutlama katmanı bağlamak ve bir Oracle DB, eylemleri gerçekleştirmek için kullanılabilir. İşte bir article Oracle web sitesinden Oracle ile PDO nasıl kullanılacağı üzerinde bulunuyor.

Kullanılması da mümkündür OCI.

Oracle PHP Development Centre Oracle ve PHP birlikte kullanarak çok daha yararlı bilgiler olacaktır.

Osx instantclient 10.6 64bit aşağıdakileri yapın:

download the instant client librarys and sdk, stuff it all in a folder. Make sure you get the 64 bit library if you are on a 64 bit machine, 32bit won't work! - test with sqlplus first

o yoksa bu oluşturmak

sudo vi /etc/launchd.conf

ve (kendi yolu ile!) dosyasına aşağıdaki eklemek

setenv DYLD_LIBRARY_PATH /usr/oracle_instantClient64

Sen probaby yolunu almak için apache yolu geçmek, ya da ben zaten sisteminizi yeniden başlatmanız bir duygu olsa, launchd eserlerini yeniden başlatmadan görmek için launchd için bu noktada sisteminizi yeniden başlatmanız gerekiyor!

Sen php.ini "extension = oci8.so" eklemek gerekir

sudo vi /etc/php.ini

bu dosya kopyalama php.ini.default yoksa

sudo cp /etc/php.ini.default /etc/php.ini

sonra yukarıdaki uzantısı eklemek, ayrıca dosyanın aşağı uzantıları dolu bir bölüm vardır, bir yerde oraya koymak

oci bunu bir kütüphane sembolik bağ gerektirir

sudo ln -s $DYLD_LIBRARY_PATH/libclntsh.dylib.10.1 $DYLD_LIBRARY_PATH/libclntsh.dylib

Ayrıca oracle çiftlerde bazı garip kodlanmış kitaplık bağlantı gidecekseniz böylece düzeltmek

mkdir -p /b/227/rdbms/

Onun sadece kehanet kütüphaneleri arayan bu yüzden geri bağlantı

ln -s /usr/oracle_instantClient64/ /b/227/rdbms/lib

Şimdi armut deposundan oci8 yükleyin. Eğer yükseltme olmadan kar leoparı osx 10.6 yüklediyseniz armut ve pecl ile ilgili sorunlar olabilir. Böylece ilk armut yüklemeniz gerekir eğer. bkz: https://discussions.apple.com/thread/2602597?start=0&tstart=0

sudo pecl install oci8

İPUCU: size sorduğunda instantclient yolunu belirtin, autodetect kullanmayın ..

instantclient,/usr/oracle_instantClient64

restart apache

sudo apachectl graceful

Bir tarayıcıda URL navigasyona tarafından sınamak veya doğrudan komut satırına dosyasını çağırabilirsiniz

php index.php

thats it use the following as a test file..

<?php 

$dbHost = "localhostOrDatabaseURL";
$dbHostPort="1521";
$dbServiceName = "servicename";
$usr = "username";
$pswd = "password";
$dbConnStr = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
            (HOST=".$dbHost.")(PORT=".$dbHostPort."))
            (CONNECT_DATA=(SERVICE_NAME=".$dbServiceName.")))";


if(!$dbConn = oci_connect($usr,$pswd,$dbConnStr)){
$err = oci_error();
trigger_error('Could not establish a connection: ' . $err['message'], E_USER_ERROR);
};

$strSQL = "SELECT SYSDATE FROM DUAL";

$stmt = oci_parse($dbConn,$strSQL);
if ( ! oci_execute($stmt) ){
$err = oci_error($stmt);
trigger_error('Query failed: ' . $err['message'], E_USER_ERROR);
};

while(oci_fetch($stmt)){
    $rslt = oci_result($stmt, 1); print "<h3>query returned: ".$rslt."</h3>";
}
?>

Ben özellikle Mac bilmiyorum, ne de PHP, ama genellikle Oracle istemci araçlarını (Instant Client) yüklemeniz gerekir.

http://www.oracle.com/technology/tech/oci/instantclient/index.html

Bir kez Oracle veritabanı sunucu ve örnek ismine işaret TNSNames.Ora dosyasını değiştirmek yüklenir.

Sonra bir bağlantı oluşturmak için (üzgünüm) PHP "veritabanı bağlantısı" malzeme kullanımı ve SQL ifadeleri çalışıyor olabilir.

Bağlantı çalışmaları denetlemek için SQL * PLUS istemcisi kullanın:

yani.

c:> SQLPLUS

CONNECT scott/tiger@mydatabase

TNSNames.Ora doğru ise bir bağlantı almalısınız, ya da size kanıtlıyor azından "kullanıcı adı / şifre yanlış" Oracle örneği ile iletişimi var.

Eğer TNS-12521 (?) Hataları alırsanız sonra TNSNames.Ora yanlıştır.

Bir oracle veritabanına bağlanma "oci_connect ()" örneğin kullanarak, oci-arayüzü ile hiçbir sorun olmalıdır.

Further examples are here: http://php.net/manual/en/oci8.setup.php

Ama sözler MAC OS X ne demek, anlamıyorum - yerel bir apache çalışıyor?

Hope this helps, Bastian