1)download
apache_2.2.14-win32-x86-no_ssl.msi
php-5.3.2-Win32-VC6-x86.zip
oracle instant client Version 10.2.0.4 (or higher) FROM:
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html
2) install apache & PHP, test phpinfo()
3) unzip oracle instant client Version 10.2.0.4,
MOVE oci.dll,orannzsbb10.dll,oraociei10.dll to C:\instantclient10
4) set env:
NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
TNS_ADMIN:C:\instantclient10
PATH:C:\instantclient10;...
you can test the env as following:
open cmd.exe
type : "echo %TNS_ADMIN%" [press ENTER key]
type : "path" [press ENTER key]
5) RESTART WINDOWS
It is VERY IMPORTANT!!
6) view phpinfo() again, you can see Path as set before in "Environment" section (not "Apache Environment")
7) uncomment in php.ini
extension=php_oci8_11g.dll
extension=php_pdo_oci.dll
8) restart apache, you can see oci in PDO drivers
9) create new file:C:\instantclient10\tnsnames.ora
MYDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.46)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = databasename)
)
)
note: you must replace the SERVICE_NAME & HOST
10) use in php:
<?php
try {
$username = "name";
$passwd = "pass";
$dbh = new PDO("oci:dbname=MYDB;charset=utf8", $username, $passwd);
$dbh->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);
$stmt = $dbh->prepare("SELECT * FROM DATA_WEBINFO");
if ($stmt->execute()) {
while ($row = $stmt->fetch()) {
print_r($row);
print "<br>";
}
}
} catch (Exception $e) {
echo "Failed to obtain database handle " .$e->getMessage();
}
?>
OK?