A. php oracle查詢時候分頁
用limit 限制
B. PHP+oracle查詢數據
請參考:
http://wenku..com/view/04b41c7d31b765ce050814ac.html
C. php如何利用sql獲取oracle大欄位類型的數據
--第一種方法: 查詢dba_tab_columns
select COLUMN_NAME,DATA_TYPE,DATA_LENGTH
from dba_tab_columns
where table_name =upper('表名')
order by COLUMN_NAME
--這種方法需要有DBA許可權
--第二種方法: 查詢user_tab_cols
select COLUMN_NAME,DATA_TYPE,DATA_LENGTH
from user_tab_cols
where table_name=upper('表名')
order by COLUMN_NAME
--這種方法只能查找當前用戶下的表
--第三種方法: 查詢ALL_TAB_COLUMNS
select distinct COLUMN_NAME,DATA_TYPE,DATA_LENGTH
from ALL_TAB_COLUMNS
WHERE TABLE_NAME= upper('表名')
--這種方法可以查詢所有用戶下的表
D. php操作oracle資料庫,如果返回select語句返回的行數
SELECT 語句用於從資料庫中選取數據。
語句1:SELECT * FROM table_name
解說:意思就是讀取整個表table_name裡面的數據顯示出來
語句1:SELECT * FROM table_name Where x = 1
解說:意思就是讀取表table_name裡面鍵名為:x 值為:1的 數據顯示出來
例子:
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT * FROM Persons");
while($row = mysql_fetch_array($result))
{
echo $row['FirstName'] . " " . $row['LastName'];
echo "<br />";
}
mysql_close($con);
?>
資料庫採用UTF8編碼,而頁面申明編碼是GB2312,這是最常見的產生亂碼的原因。
這時候在PHP腳本裡面直接SELECT數據出來的就是亂碼,需要在查詢前先使用:
mysql_query("SET NAMES GBK");或mysql_query("SET NAMES GB2312");
來設定MYSQL連接編碼,保證頁面申明編碼與這里設定的連接編碼一致(GBK是GB2312的擴展)。如果頁面是UTF-8編碼的話,可以用:
mysql_query("SET NAMES UTF8"); 注意是UTF8而不是一般用的UTF-8。假如頁面申明的編碼與資料庫內部編碼一致可以不設定連接編碼。
代碼如下:
$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_query("SET NAMES 'GBK'");
E. PHP連接oracle資料庫後查詢多個表怎麼輸出到對應的表格內
用聯合查詢就可以實現
一般包括左外連接,右外連接和內連接
可以用on設置每兩個表之間的關聯關系,查詢後遍歷輸出到頁面就可以了
F. 在php環境中,從oracle中獲取數據如何提取具體值
連接 <? if ($conn=Ora_Logon("user@TNSNAME","password")) { echo "SUCCESS ! Connected to database\n"; }else {echo "Failed :-( Could not connect to database\n";} Ora_Logoff($conn); phpinfo(); ?>以上代碼使用TNSNAME(在你的tnsnames.ora文件中指明)定義的Oracle資料庫名稱、用戶名稱和密碼連接資料庫。在成功連接的基礎上,ora_logon函數返回一個非零的連接ID並儲存在變數$conn中。 查詢 假設與資料庫已經連接就緒,下面我們就來實際的應用對資料庫的查詢。下面的代碼演示了一個連接並查詢的典型例子: function printoraerr($in_cur) { // 檢查Oracle是否出錯 // 如果存在錯誤則顯示 // 當指針被激活時每次請求Oracle後調用該函數 if(ora_errorcode($in_cur)) echo "Oracle code - ".ora_error($in_cur)."\n"; return; } if (!($conn=ora_logon("user@TNSNAME","password"))) {echo "Connection to database failed\n"; exit; } echo "Connected as connection - $conn \n"; echo "Opening cursor ... \n"; $cursor=ora_open($conn); printoraerr($cursor); echo "Opened cursor - $cursor \n"; $qry="select user,sysdate from al"; echo "Parsing the query $qry ... \n"; ora_parse($cursor,$qry,0); printoraerr($cursor); echo "Query parsed \n"; echo "Executing cursor ... \n"; ora_exec($cursor); printoraerr($cursor); echo "Executed cursor \n"; echo "Fetching cursor ... \n"; while(ora_fetch($cursor)) { $user=ora_getcolumn($cursor,0); printoraerr($cursor); $sysdate=ora_getcolumn($cursor,1); printoraerr($cursor); echo " row = $user, $sysdate \n"; } echo "Fetched all records \n"; echo "Closing cursor ... \n"; ora_close($cursor); echo "Closed cursor \n"; echo "Logging off from oracle... \n"; ora_logoff($conn); echo "Logged off from oracle \n"; ?>顯示結果以下代碼演示了怎樣查詢資料庫並將結果輸出: function printoraerr($in_cur, $conn) { // 檢查Oracle是否出錯 // 如果存在錯誤則顯示 // 當指針被激活時每次請求Oracle後調用該函數 // If it encountered an error, we exit immediately if(ora_errorcode($in_cur)) {echo "Oracle code - ".ora_error($in_cur)." n"; ora_logoff($conn); exit; } return; } function exequery($w_qry,$conn) { $cursor=ora_open($conn); printoraerr($cursor,$conn); ora_parse($cursor,$w_qry,0); printoraerr($cursor,$conn); ora_exec($cursor); printoraerr($cursor,$conn); $numrows=0; $w_numcols=ora_numcols($cursor); // 顯示頭部 echo " \n"; for ($i=0;$i<$w_numcols;$i++) { $align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT"; echo "\t ".ora_columnname($cursor,$i)." \n"; } echo " \n"; while(ora_fetch($cursor)) { echo " \n"; for ($i=0;$i<$w_numcols;$i++) { $align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT"; if(ora_columntype($cursor,$i)=="LONG") echo " ". ora_getcolumn($cursor,$i)." \n"; else echo " ".ora_getcolumn($cursor,$i)." \n"; printoraerr($cursor,$conn); } $numrows++; echo " \n"; } if ($numrows==0) echo " Query returned no records \n"; else { echo " \n"; echo " Count \n"; echo " $numrows \n"; echo " \n"; } echo " \n"; ora_close($cursor); return; } // 主程序 if(!($conn=ora_logon("user@SID","password"))) { echo "Error: Cannot connect to database\n"; exit; } $qry="SELECT deptno \"Dept\" ,empno \"Emp\" ,empnm \"Name\" ,salary \"Salary\" FROM employee ORDER BY 1,2"; exequery($qry); ora_logoff($conn); ?>基於HTTP的Oracle登錄將以下代碼加在PHP頁面代碼之前以確認Oracle登錄。注意你必須正確設定$ SID。 if(!isset($PHP_AUTH_USER)) { Header("WWW-authenticate: basic realm=\"$SID\""); Header("HTTP/1.0 401 Unauthorized"); $title="Login Instructions"; echo " You are not authorized to enter the site \n"; exit; } else { if (!($conn=ora_logon("$PHP_AUTH_USER@$SID",$PHP_AUTH_PW))) {Header("WWW-authenticate: basic realm=\"$SID\""); Header("HTTP/1.0 401 Unauthorized"); $title="Login Instructions"; echo " You are not authorised to enter the site \n"; exit; }} ?>
G. php使用ODBC查詢oracle,將查詢結果分頁顯示
oracle 實現分頁要用到rownum 代碼如下
select * from (select t.* rownum row_id form (select * from 表名) t ) where row_id>=1 and row_id<=10
這條SQL語句就可以實現分頁查詢,當然光有SQL還是不行,用以下的PHP 函數就可實現分頁了。
/*分頁函數*/
function page($page,$total,$phpfile,$pagesize=10,$pagelen=10,$str='')
{
$pagecode = '';//定義變數,存放分頁生成的HTML
$page = intval($page);//避免非數字頁碼
$total = intval($total);//保證總記錄數值類型正確
if(!$total) return array();//總記錄數為零返回空數組
$pages = ceil($total/$pagesize);//計算總分頁
//處理頁碼合法性
if($page<1) $page = 1;
if($page>$pages) $page = $pages;
//計算查詢偏移量
$offset = $pagesize*($page-1)+1;
//頁碼范圍計算
$init = 1;//起始頁碼數
$max = $pages;//結束頁碼數
$pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//頁碼個數
$pageoffset = ($pagelen-1)/2;//頁碼個數左右偏移量
//生成html
$pagecode='<div class="page">';
$pagecode.="<span>共".$total."條信息 第".$page."頁/共".$pages."頁</span>\n";//第幾頁,共幾頁
//如果是第一頁,則不顯示第一頁和上一頁的連接
if($page!=1){
$pagecode.="<a href=\"{$phpfile}?page=1&$str\"> 首頁 </a> ";//第一頁
$pagecode.="<a href=\"{$phpfile}?page=".($page-1)."&$str\"> 上頁 </a> ";//上一頁
}
//分頁數大於頁碼個數時可以偏移
if($pages>$pagelen)
{
//如果當前頁小於等於左偏移
if($page<=$pageoffset)
{
$init=1;
$max = $pagelen;
}else
{
//如果當前頁大於左偏移
//如果當前頁碼右偏移超出最大分頁數
if($page+$pageoffset>=$pages+1)
{
$init = $pages-$pagelen+1;
}else{
//左右偏移都存在時的計算
$init = $page-$pageoffset;
$max = $page+$pageoffset;
}
}
}
//生成html
for($i=$init;$i<=$max;$i++)
{
if($i==$page)
{
$pagecode.='<span><font color = red ><b>'.$i.'</b></font></span>';
} else {
$pagecode.="<a href=\"{$phpfile}?page={$i}&$str\"> $i </a>";
}
}
if($page!=$pages)
{
$pagecode.="<a href=\"{$phpfile}?page=".($page+1)."&$str\"> 下頁 </a>";//下一頁
$pagecode.="<a href=\"{$phpfile}?page={$pages}&$str\"> 末頁 </a>";//最後一頁
}
$pagecode.='</div>';
$onset = $offset + $pagesize -1;
return array('pagecode'=>$pagecode,'sqllimit'=>' and row_id between '.$offset.' and '.$onset);
}
使用方法如下:
1,首先查詢最大數據條數
$sql="select count(*) co_unt from 表名";
$st = OCIParse($conn, $sql);//分析指令
OCIExecute($st); //執行指令
$row=oci_fetch_array($st);
$counts=$row['CO_UNT'];
if($counts>0){
$page=isset($_GET['page'])?$_GET['page']:1;
$getpageinfo = page($page,$counts,$phpfile,$chahaoString,10,15);
$pagesql=$getpageinfo['sqllimit'];//組合完整的SQL語句
$pagenav=$getpageinfo['pagecode'];//分頁顯示的樣式代碼
$sql="select * from (select t.* rownum row_id form (select * from 表名) t ) where 1=1 ".$pagesql
}
這樣既可實現了,不懂的話HI我
H. php查詢oracle庫數據的頁面,oracle庫的時間類型為date 顯示 16-2月 -12 我想顯示格式為2012-2-16 9:50
select to_char(sysdate,'yyyy-mm-dd hh24:mi') from al
I. 怎樣用PHP查詢出oracle資料庫伺服器里所有資料庫名稱
首先我想說一句:樓下最快的回答是對的,沒什麼大問題,難道你不知道php里可以執行sql語句嗎?自己知識面不夠,並且還是提問者,還跟大爺似的。。。最後:php里執行select name from v$database;,如果你不知道這怎麼執行,你去看看基礎好了
J. php查詢oracle 臨時表,為什麼為空
創建臨時表有兩種模式,on commit delete rows 提交後刪除和on commit preserve rows 斷開會話後刪除,默認是前者。估計你創建臨時表時沒加條件。