Nasıl MAC OS X üzerinde PHP kullanarak Oracle bağlanmak mı?
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