2012年10月24日 星期三

php連接oracle資料庫

ㄧ、先將php.ini中extension=php_oci8.dll前的註解拿掉。
二、下載:http://ray.myweb999.com/download/oracle.zip解壓縮到自己建立的資料夾
      中,例如:c:\oracle。
三、將二中的資料夾路徑放進環境變數中系統環境變數的Path裡!然後一定要重開機

      這裡是我覺得最不思議的部分,照理說那些檔案若是放進c:\windows\system32  
      而c:\windows\system32本來就在系統環境變數的Path裡應該就可以才對,但好像不
      行,沒時間深入研究,有興趣的人可以試試,或許也可以成功!

四、PHP中連接的範例程式如下:

(1)connect:

$db_link = oci_connect("account","password","(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.172.225)(PORT=1521))(CONNECT_DATA=(SID=db_sid_name)))");
if(!$db_link)
{
      die("資料連結失敗!");
}

(2)insert:    
$query = "insert into table(field1,field2,field3)values('$field1','$field2','$field3')";
$stid = oci_parse($db_link, $query);
$r = oci_execute($stid);

(3)select:
$query = "select field1,field2,field3 from table where field1 = 'value'";
$stid = oci_parse($db_link, $query);
$r = oci_execute($stid);
while(list($field1,$field2,$field3) = oci_fetch_array($stid))
        echo $field1.",".$field2.",".$field3."<br>";

五、安裝過oracle某些工具程式的電腦或許還會有問題,印象中google後的解決辦法是去
      registry裡面刪掉一些鍵值,詳細步驟未記錄,下次有機會再記錄了~

2012年10月9日 星期二

MS SQL日期欄位的比較方式

利用 between [起始日期字串] and [結束日期字串]

範例如下:

select * from MyTb where dateField between '2012-01-01' and '2012-12-31'

2012年10月7日 星期日

java Reflection - 利用class name來產生物件達到終級Factory設計模式


MyOracleDB繼承自MyDB,如此一來“MyOracleDB”可以從ini檔中讀出~~

try 
{
    Object myDB = Class.forName("MyOracleDB").newInstance();
    ((MyDB)myDB).connectDB();
catch (Exception e)
{
    e.printStackTrace();
}