天天看點

php oci8 通路oracle 成功

1. <?php
2. 
3. echo date("Y-m-d H:i:s");
4. echo "<br />";
5. echo "<br />";
6. $str="(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST = XXX)(PORT=1521)))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME = orcl)))";
7. $dbconn=oci_connect("xxx","xxx",$str);
8. if(!$dbconn)
9. {
10. echo "Can not connect.";
11. exit;
12. }
13. 
14. //OCIFreeStatement($stmt);
15. 
16. $sql="select u.login_id,decryptionr5(u.login_id,u.password),u.password from users u where u.login_id like '%corp%' or u.login_id like 'admin' or u.login_id like '�1%' ";
17. $stmt = OCIParse($dbconn, $sql);
18. OCIExecute($stmt);
19. 
20. 
21. 
22. $i=0;
23. $j=0;
24. $offset=0;
25. $limit=10;
26. while( OCIFetchInto($stmt, &$result_array)) {
27. if ($i>=$offset) {
28. if ($j <$limit) {
29. for ($k=0; $k<=count($result_array); $k++)
30. {
31. //echo $k;
32. echo $result_array[$k]." | ";
33. }
34. //echo "<br />";
35. $j++;
36. }
37. }
38. $i++;
39. echo "<br />";
40. }
41. echo " ";
42. 
43. ?>      

其他可用資源: 

從Oracle(OCI)開始

在越來越多的PHP使用者選擇Oracle作為他們的資料庫的情況下,如何通路PHP釋出環境下的Oracle接口變的越發的重要了。我們将從快速的浏覽一個簡單基本且是更加明确的Oracle 的情況開始我們的旅程。Oralce 和Oralce8 使用PHP的OCI8 函數庫。在PHP手冊裡有簡要的說明(http://www.php.net/manual/ref.oci8.php): 這些函數允許你通路Oracle 和 Oracle7d 的資料庫,它們使用的是Oracle8 Call-Interface(OCI8)。你将需要Oracle8 的用戶端函數庫來使用這些擴充功能。

這些擴充功能比起标準的Oracle擴充功能來更加的靈活,它支援PHP全局及本地變量及與Oracle的連編,有完整的LOB,FILE及ROWID的支援并且允許你定義使用者補充變量。

從這裡開始,我将使用“Oracle”指代任何Oracle版本,這篇文章假定你已經安裝并運作了PHP和Oracle。而Oracle的幫助可以在http://www.oracle.com 或者 http://technet.oracle.com 找到。

1.連接配接到ORALCLE 

2.建立并運作SQL語句 

3.顯示結果 

4.限制/偏移量 接近“标記頁數”的結果

if (empty($offset) || $offset < 0) { 
 $offset=0; 
 } if (empty($offset) || $offset < 0) { 
 $offset=0; 
 }
 $conn = OCILogon("user_name", "password", "ORASID");

 echo "
 ERROR - Could not connect to Oracle"; 
 
 exit; 
 
 } 
 


 $sql = "Select count(*) from table_name";
 if(!$stmt) { 
 echo " ERROR - Could not parse SQL statement."; 
 
 exit; 
 
 } 
 


 OCIExecute($stmt);

 OCIFetchInto($stmt, &$total_rows);
 echo "
 Error - no rows returned!"; 
 
 exit; 
 
 } 
 


 $end = ($begin+($limit-1)); 
 if ($end > $total_rows[0]) { 
 $end = $total_rows[0]; 
 }$total_rows[0] results.
 \n"; 
 echo "Now showing results $begin to $end.
 \n"; OCIFreeStatement($stmt);
 $sql = "Select * from table_name";
 $stmt = OCIParse($conn, $sql);
 echo "
 ERROR - Could not parse SQL statement."; 
 
 exit; 
 
 } 
 

 OCIExecute($stmt);

 $j=0; 
 while( OCIFetchInto($stmt, &$result_array) ) { 
 if ($i>=$offset) { 
 if ($j <$limit) { 
 for ($k=0; $k<=count($result_array); $k++) { 
 echo $result_array[$k]." "; 
 } 
 echo " 
 "; 
 $j++; 
 } 
 } 
 $i++; 
 } 
 echo " 
 ";
 $pages = intval($total_rows[0]/$limit);
 if ($total_rows[0]%$limit) { 
 // has remainder so add one page 
 $pages++; 
 } if ($offset!=0) { 
 $prevoffset=$offset-$limit; 
 echo "​​​<< PREV​​​   \n"; 
 } // ex. 1 2 3 4 5 NEXT >> 
 for ($i=1;$i<=$pages;$i++) { 
 // Check if on current page 
 if (($offset/$limit) == ($i-1)) { 
 // $i is equal to current page, so don't display a link 
 echo "$i   "; 
 } else { 
 // $i is NOT the current page, so display a link to page $i 
 $newoffset=$limit*($i-1); 
 echo "​​​$i​​​   \n"; 
 } 
 } if (!((($offset/$limit)+1)==$pages) && $pages!=1) { 
 // Not on the last page yet, so display a NEXT Link 
 $newoffset=$offset+$limit; 
 echo "​​​NEXT >>​​ }

 OCILogoff($conn);
 ?>