欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

windwos下使用php連接oracle數(shù)據(jù)庫的過程分享

 更新時間:2014年05月26日 11:44:21   作者:  
這篇文章主要介紹了windwos下使用php連接oracle數(shù)據(jù)庫的過程分享,講解了php連接oracle的必要條件、代碼實(shí)例以及錯誤排查等,需要的朋友可以參考下

要使用php連接oracle,基本條件是
1.需要你安裝了php、
2.安裝了oracle、
3.配置了tnsname.ora。
本地命令行使用sqlplus能夠連接到oracle。

根據(jù)你機(jī)器的版本選對64bit或者32bit的php程序,我們使用php的oci8擴(kuò)展連接oracle

安裝好php后,打開oci8擴(kuò)展,

寫一段連接oracle的ora.php代碼

復(fù)制代碼 代碼如下:

<?php

$conn = oci_connect('hr', 'welcome', 'MYDB');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Prepare the statement
$stid = oci_parse($conn, 'SELECT * FROM departments');
if (!$stid) {
    $e = oci_error($conn);
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Perform the logic of the query
$r = oci_execute($stid);
if (!$r) {
    $e = oci_error($stid);
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Fetch the results of the query
print "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    print "<tr>\n";
    foreach ($row as $item) {
        print "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
    }
    print "</tr>\n";
}
print "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

說明:
oci_connect('hr', 'welcome', 'MYDB')
第一個參數(shù)是oracle的用戶名,
第二個參數(shù)是oracle的密碼
第三個參數(shù)是tnsnames.ora里的連接串名

命令行下執(zhí)行

復(fù)制代碼 代碼如下:
php ora.php

提示如下錯誤

復(fù)制代碼 代碼如下:

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\php_oci8.dll'- %1 不是有效的 Win32 應(yīng)用程序。 in Unknown on line 0
PHP Parse error: syntax error, unexpected '"user"' (T_CONSTANT_ENCAPSED_STRING) in C:\Users\nginx\Desktop\oraclephpoci\oci.php on line 3

開始以為是沒有選對版本,我是64位的機(jī)器,結(jié)果說是win32的程序,一看字面提示,我就重新安裝了新的32bit程序還是報錯。

仔細(xì)查了查發(fā)現(xiàn)在32位像64位遷移的問題,出現(xiàn)如下問題時,我們需要安裝Oracle Instant Client。

復(fù)制代碼 代碼如下:

Unable to load dynamic library 'C:\Program Files (x86)\PHP\ext\php_oci8_11g.dll' - %1 is not a valid Win32 application.
Warning oci_connect(): OCIEnvNlsCreate() failed. There is something wrong with your system - please check that PATH includes the directory with Oracle Instant Client libraries

Oracle Instant Client,它是一個解壓后就能使用的程序,不需要安裝。
如果有oracle賬號的可以去oracle下載對應(yīng)的版本,(注冊用戶需要一堆信息)

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

嫌麻煩的同學(xué)使用這個地址下載

http://eduunix.ccut.edu.cn/index2/database/Oracle%20Instant%20Client/

下載后把壓縮包解壓到c:\oracleinstantclient,并添加路徑到環(huán)境變量PATH

重新執(zhí)行php ora.php,“%1 不是有效的 Win32 應(yīng)用程序”的錯誤沒有了,但是會提示

復(fù)制代碼 代碼如下:
syntax error, unexpected T_CONSTANT_ENCAPSED_STRING

代碼是從php官網(wǎng)直接拷過來的,代碼中有不可見的字符,使用notepad++查看所有字符,去掉亂碼即可。

繼續(xù)執(zhí)行,這次提示,

復(fù)制代碼 代碼如下:

PHP Fatal error: ORA-12154: TNS:could not resolve the connect identifier specified in C:\Users\nginx\Desktop\airline\oci.php on line 6

看樣子是php沒有找到tnsnames.ora的位置,時間比較趕,那我就直接使用ip的形式,具體格式根據(jù)你的信息拼寫oci_connect的第三個參數(shù)
oracle10格式:[//]host_name[:port][/service_name]
oracle11格式:[//]host_name[:port][/service_name][:server_type][/instance_name].
我具體使用的php oci連接串是:
復(fù)制代碼 代碼如下:
$conn = oci_connect('hr', 'welcome', '//www.dbjr.com.cn:1523/sycx');

配好上述信息后,終于能出結(jié)果了,但是發(fā)現(xiàn)查出來的結(jié)果中問亂碼,這種問題基本都是編碼不匹配。

php oci8中文亂碼解決辦法,先查詢你的oracle的數(shù)據(jù)庫編碼使用,

復(fù)制代碼 代碼如下:
select userenv('language') from dual;

查出來的結(jié)果是SIMPLIFIED CHINESE_CHINA.ZHS16GBK,在php的代碼里設(shè)置環(huán)境變量
復(fù)制代碼 代碼如下:
putenv("NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK");

終于php能夠正確連接到oracle啦。

相關(guān)文章

  • twig里使用js變量的方法

    twig里使用js變量的方法

    這篇文章主要介紹了twig里使用js變量的方法,結(jié)合實(shí)例形式對比分析了在twig中使用js變量的相關(guān)調(diào)用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-02-02
  • PHP創(chuàng)建PowerPoint2007文檔的方法

    PHP創(chuàng)建PowerPoint2007文檔的方法

    這篇文章主要介紹了PHP創(chuàng)建PowerPoint2007文檔的方法,通過PHP第三方插件PHPPowerPoint類庫實(shí)現(xiàn)ppt文件的生成功能,非常具有實(shí)用價值,需要的朋友可以參考下
    2015-12-12
  • Yii遍歷行下每列數(shù)據(jù)的方法

    Yii遍歷行下每列數(shù)據(jù)的方法

    這篇文章主要介紹了Yii遍歷行下每列數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了Yii框架下數(shù)據(jù)遍歷的相關(guān)操作技巧,需要的朋友可以參考下
    2016-10-10
  • yii2 開發(fā)api接口時優(yōu)雅的處理全局異常的方法

    yii2 開發(fā)api接口時優(yōu)雅的處理全局異常的方法

    這篇文章主要介紹了yii2 開發(fā)api接口時優(yōu)雅的處理全局異常的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • PHP結(jié)合Jquery和ajax實(shí)現(xiàn)瀑布流特效

    PHP結(jié)合Jquery和ajax實(shí)現(xiàn)瀑布流特效

    php+ajax+jquery實(shí)現(xiàn)無限瀑布流布局 寬度是一定的高度不定的瀑布流布局 也可以說是無縫拼圖 當(dāng)瀏覽器滾動到底部時候自動加載圖片,非常的實(shí)用,需要的小伙伴可以參考下。
    2016-01-01
  • 基于CI(CodeIgniter)框架實(shí)現(xiàn)購物車功能的方法

    基于CI(CodeIgniter)框架實(shí)現(xiàn)購物車功能的方法

    這篇文章主要介紹了基于CI(CodeIgniter)框架實(shí)現(xiàn)購物車功能的方法,結(jié)合實(shí)例形式分析了CodeIgniter框架購物車功能類的定義及數(shù)據(jù)庫建立相關(guān)sql命令,需要的朋友可以參考下
    2018-04-04
  • php 正則 過濾html 的超鏈接

    php 正則 過濾html 的超鏈接

    php 過濾html 超鏈接的正則
    2009-06-06
  • php實(shí)現(xiàn)的mongodb操作類

    php實(shí)現(xiàn)的mongodb操作類

    說到php連mongoDB,不得不先介紹一下php的官方手冊,網(wǎng)址在:http://us.php.net/manual/en/book.mongo.php,接下來給大家分享一個本人常用的MONGODB的操作類,詳見的數(shù)據(jù)庫操作都有了,小伙伴可以參考下。
    2015-05-05
  • DEDECMS首頁調(diào)用圖片集里的多張圖片

    DEDECMS首頁調(diào)用圖片集里的多張圖片

    本文給大家分享的是織夢系統(tǒng)中首頁調(diào)用圖片集里的多張圖片的方法,有相同需要的小伙伴可以參考下。
    2015-06-06
  • 簡單分析ucenter 會員同步登錄通信原理

    簡單分析ucenter 會員同步登錄通信原理

    UCenter是Comsenz旗下各個產(chǎn)品之間信息直接傳遞的一個橋梁,通過UCenter 站長可以無縫整合Comsenz系列產(chǎn)品,實(shí)現(xiàn)用戶的一站式登錄以及社區(qū)其他數(shù)據(jù)的交互。其實(shí)何止是comsenz系列產(chǎn)品,可以這么說整合了 ucenter 就等于整合了整個php 界的所有php 程序。
    2014-08-08

最新評論