天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

windwos下使用php連接oracle數據庫的過程分享

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

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

安裝好php后,打開oci8擴展,

寫一段連接oracle的ora.php代碼
復制代碼 代碼如下:
<?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) : " ") . "</td>/n";
    }
    print "</tr>/n";
}
print "</table>/n";

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

?>

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

命令行下執行
復制代碼 代碼如下:php ora.php

提示如下錯誤
復制代碼 代碼如下:
php Warning: php Startup: Unable to load dynamic library 'C:/php/php_oci8.dll'- %1 不是有效的 Win32 應用程序。 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位的機器,結果說是win32的程序,一看字面提示,我就重新安裝了新的32bit程序還是報錯。

仔細查了查發現在32位像64位遷移的問題,出現如下問題時,我們需要安裝Oracle Instant Client。
復制代碼 代碼如下:
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下載對應的版本,(注冊用戶需要一堆信息)

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

嫌麻煩的同學使用這個地址下載

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

下載后把壓縮包解壓到c:/oracleinstantclient,并添加路徑到環境變量PATH

重新執行php ora.php,“%1 不是有效的 Win32 應用程序”的錯誤沒有了,但是會提示
復制代碼 代碼如下:syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
代碼是從php官網直接拷過來的,代碼中有不可見的字符,使用notepad++查看所有字符,去掉亂碼即可。

繼續執行,這次提示,
復制代碼 代碼如下:
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的形式,具體格式根據你的信息拼寫oci_connect的第三個參數
oracle10格式:[//]host_name[:port][/service_name]
oracle11格式:[//]host_name[:port][/service_name][:server_type][/instance_name].
我具體使用的php oci連接串是:
復制代碼 代碼如下:$conn = oci_connect('hr', 'welcome', '//www.jb51.NET:1523/sycx');

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

php oci8中文亂碼解決辦法,先查詢你的oracle的數據庫編碼使用,
復制代碼 代碼如下:select userenv('language') from dual;
查出來的結果是SIMPLIFIED CHINESE_CHINA.ZHS16GBK,在php的代碼里設置環境變量
復制代碼 代碼如下:putenv("NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK");

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

php技術windwos下使用php連接oracle數據庫的過程分享,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 果冻传媒视频在线播放 免费观看 | 国产精品亚洲污污网站入口 | 国产在线观看码高清视频 | 亚州三级久久电影 | WWW国产精品内射老师 | 国产区免费在线观看 | 超碰日韩人妻高清视频 | 国产亚洲视频精彩在线播放 | 中文字幕亚洲无线码高清不卡 | 国产在线精品一区二区在线看 | 国产强奷糟蹋漂亮邻居在线观看 | 最新国产亚洲亚洲精品视频 | 闺蜜扒开我尿口使劲揉 | 999国产高清在线精品 | 亚洲国产精品无码AV久久久 | 美女被日出水 | 果冻传媒最新视频在线观看 | 久久国产伦子伦精品 | 邪恶肉肉全彩色无遮琉璃神社 | 吃春药后的女教师 | 亚洲精品AV无码喷奶水糖心 | 娇小萝被两个黑人用半米长 | 国产人妻麻豆蜜桃色69 | 免费特黄一区二区三区视频一 | 2019午夜福利757视频第12集 | 亚洲欲色欲色XXXXX在线AV | 亚洲欧洲自拍偷拍 | 高清观看ZSHH96的视频素材 | 打扑克床上视频不用下载免费观看 | 久久精品国产免费播放 | 国产在线高清亚洲精品一区 | 24小时日本在线观看片 | 极品内射少妇精品无码视频 | 国产精品成人在线播放 | 欧美6O老妪与小伙交 | 亚洲欧美国产视频 | 亚洲蜜桃AV永久无码精品放毛片 | 久久久性色精品国产免费观看 | 精品熟女少妇AV久久免费A片 | 麻豆精选2021 | 纯肉腐文高H总受男男 |