ORACLE 與 PHP 的結合設定解決 ORA 12154的錯誤

各位在安裝 PHP TO ORACLE 的時候,會不會出現 

ORA 12154 的錯誤呢?請看下面的設定吧。

1.ORACLE安裝 ORACLE  安裝請先看我前一篇的安裝說明、記得要設定好ORACLE_HOME、ORACLE_SID
2.設定APACHE 不必重新安裝APACHE、但是記得要把啟動的使用者、設定成ORACLE的安裝者(ex: ORACLE)

群組也要設定好(ex:oinstall)然後不用急著重新啟動APACHE

3.重新安裝PHP RPM:
請到這邊  http://rpms.arvin.dk/php/rh72/i586/ 去安裝你要的套件

TAR:
記得 configure 加上 --with-oci8=shared,$ORACLE_HOME

4.重新啟動APACHE  記得安裝好PHP以後要重新啟動PHP。確定你第二項有設定好。
5.察看SID 可以察看  /etc/oratab 裡面的資料、那就是你安裝的ORACLE_SID
6.PHP for ORACLE 測試程式碼 <?php
print "<HTML><PRE>";
$db = "
填上你的SID";

$c1 = ocilogon("system","manager",$db);
$c2 = ocilogon("scott","tiger",$db);

function create_table($conn)
{ $stmt = ociparse($conn,"create table scott.hallo (test varchar2(64))");
ociexecute($stmt);
echo $conn." created table\n\n";
}

function drop_table($conn)
{ $stmt = ociparse($conn,"drop table scott.hallo");
ociexecute($stmt);
echo $conn." dropped table\n\n";
}

function insert_data($conn)
{ $time = date("H:i:s A");
$stmt = ociparse($conn,"insert into scott.hallo 
values('===許 $time 功==')");

ociexecute($stmt,OCI_DEFAULT);
echo $conn." inserted hallo\n\n";
}

function delete_data($conn)
{ $stmt = ociparse($conn,"delete from scott.hallo");
ociexecute($stmt,OCI_DEFAULT);
echo $conn." deleted hallo\n\n";
}

function commit($conn)
{ ocicommit($conn);
echo $conn." committed\n\n";
}

function rollback($conn)
{ ocirollback($conn);
echo $conn." rollback\n\n";
}

function select_data($conn)
{ $stmt = ociparse($conn,"select * from scott.hallo");
ociexecute($stmt,OCI_DEFAULT);
echo $conn."----selecting\n\n";
while (ocifetch($stmt))
echo $conn." <".ociresult($stmt,"TEST").">\n\n";
echo $conn."----done\n\n";
}

create_table($c1);
insert_data($c1); // Insert a row using c1
insert_data($c2); // Insert a row using c2

select_data($c1); // Results of both inserts are returned
select_data($c2); 

rollback($c1); // Rollback using c1

select_data($c1); // Both inserts have been rolled back
select_data($c2); 

insert_data($c2); // Insert a row using c2
commit($c2); // commit using c2

select_data($c1); // result of c2 insert is returned

delete_data($c1); // delete all rows in table using c1
select_data($c1); // no rows returned
select_data($c2); // no rows returned
commit($c1); // commit using c1

select_data($c1); // no rows returned
select_data($c2); // no rows returned

drop_table($c1);
print "</PRE></HTML>";
?>

That's ALL~~~~