{"id":2432,"date":"2010-09-25T23:10:32","date_gmt":"2010-09-25T15:10:32","guid":{"rendered":"http:\/\/www.orczhou.com\/?p=2432"},"modified":"2012-03-31T11:09:44","modified_gmt":"2012-03-31T03:09:44","slug":"php-oci8-oracle","status":"publish","type":"post","link":"https:\/\/www.orczhou.com\/index.php\/2010\/09\/php-oci8-oracle\/","title":{"rendered":"PHP\u8fde\u63a5Oracle\u6570\u636e\u5e93"},"content":{"rendered":"<p>\u4e00\u822c\u5927\u5bb6\u4e0d\u8fd9\u4e48\u505a\u3002<\/p>\n<p>\u4e0d\u96be\uff0c\u548c\u8fde\u63a5MySQL\u5dee\u4e0d\u591a\u3002php\u9700\u8981\u4f7f\u7528<a href=\"http:\/\/pecl.php.net\/package\/oci8\">OCI8<\/a>\u6269\u5c55\u6765\u8fde\u63a5Oracle\uff0c\u53ef\u4ee5\u4f7f\u7528<a href=\"http:\/\/php.net\/manual\/en\/function.phpinfo.php\">phpinfo<\/a>\u6765\u67e5\u770b\u4f60\u662f\u5426\u5df2\u7ecf\u5b89\u88c5\u4e86\u8be5\u6269\u5c55\u3002\u5173\u4e8eOCI8\u7684\u8be6\u7ec6\u4f7f\u7528\u53ef\u4ee5\u76f4\u63a5\u53c2\u8003php\u7684<a href=\"http:\/\/php.net\/manual\/en\/book.oci8.php\">Manual OCI8<\/a>\uff0c\u672c\u6587\u4ec5\u505a\u4e00\u4e2a\u5165\u95e8\u4ecb\u7ecd\u3002<\/p>\n<div class=\"myt1\">1. \u4f7f\u7528\u4ec0\u4e48\u5e10\u53f7\u8fde\u63a5<\/div>\n<pre><div class=\"mycode\">$ora_host = \"172.19.*.259\";\r\n$ora_port=\"1521\";\r\n$ora_sid = \"orasid\";\r\n$ora_username = \"orauser\";\r\n$ora_password = \"orapwd\";\r\n$charset = \"UTF8\"; ### zhs16gbk ###\r\n<\/div><\/pre>\n<p><!--more--><\/p>\n<div class=\"myt1\">2. \u6784\u5efaEasy Connect string<\/div>\n<p>\uff08\u5982\u679ctnsnames.ora\u4e2d\u5df2\u7ecf\u6709\u4e86\uff0c\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528Connect Name\uff09<\/p>\n<pre><div class=\"mycode\">$ora_connstr = \"(description=(address=(protocol=tcp)\r\n(host=\".$ora_host.\")(port=\".$ora_port.\"))\r\n(connect_data=(service_name=\".ora_sid.\")))\";\r\n<\/div><\/pre>\n<p>\u5173\u4e8e\u5177\u4f53\u7684Connect String\u6784\u9020\u4e0d\u540c\u7684Oracle\u7248\u672c\u7565\u6709\u4e0d\u540c\uff0c\u8be6\u7ec6\u53c2\u8003\u5bf9\u5e94\u7248\u672c\u7684<a href=\"http:\/\/download.oracle.com\/docs\/cd\/E11882_01\/network.112\/e10836\/naming.htm#NETAG255\">Easy Connect Naming<\/a><\/p>\n<div class=\"myt1\">3. \u8fde\u63a5\u6570\u636e\u5e93<\/div>\n<p>\u4f7f\u7528<a href=\"http:\/\/php.net\/manual\/en\/function.oci-connect.php\">oci_connect<\/a>\u51fd\u6570\u5c31\u53ef\u4ee5\u8fde\u63a5Oracle\u4e86\uff08\u5176\u5b9e\u548c\u8fde\u63a5MySQL\u5927\u540c\u5c0f\u5f02\uff09\u3002<\/p>\n<pre><div class=\"mycode\">$conn = oci_connect($ora_username, $ora_password,$ora_connstr,$charset);\r\nif (!$conn) {\r\n    $e = oci_error();\r\n    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);\r\n}<\/div><\/pre>\n<div class=\"myt1\">4. \u6267\u884cQuery<\/div>\n<pre><div class=\"mycode\">$stid = oci_parse($conn, 'SELECT * FROM employees');\r\noci_execute($stid);<\/div><\/pre>\n<div class=\"myt1\">5. \u83b7\u53d6\u7ed3\u679c<\/div>\n<p>\u5728while\u5faa\u73af\u4e2d\u4f7f\u7528oci_fetch_array\u904d\u5386\u7ed3\u679c\u3002<\/p>\n<pre><div class=\"mycode\">echo \"&lt;table border='1'>\\n\";\r\nwhile ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {\r\n    echo \"&lt;tr>\\n\";\r\n    foreach ($row as $item) {\r\n        echo \"    &lt;td>\" . ($item !== null ? htmlentities($item, ENT_QUOTES) : \"&amp;nbsp;\") . \"&lt;\/td>\\n\";\r\n    }\r\n    echo \"&lt;\/tr>\\n\";\r\n}\r\necho \"&lt;\/table>\\n\";\r\n<\/div><\/pre>\n<div class=\"myt1\">6. \u5168\u90e8\u4ee3\u7801<\/div>\n<pre><div class=\"mycode\">$ora_host = \"172.19.*.259\";\r\n$ora_port=\"1521\";\r\n$ora_sid = \"orasid\";\r\n$ora_username = \"orauser\";\r\n$ora_password = \"orapwd\";\r\n$charset = \"UTF8\"; ### zhs16gbk ###\r\n\r\n$ora_connstr = \"(description=(address=(protocol=tcp)\r\n(host=\".$ora_host.\")(port=\".$ora_port.\"))\r\n(connect_data=(service_name=\".ora_sid.\")))\";\r\n$conn = oci_connect($ora_username, $ora_password,$ora_connstr);\r\nif (!$conn) {\r\n    $e = oci_error();\r\n    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR,$charset);\r\n}\r\n\r\n$stid = oci_parse($conn, 'SELECT * FROM employees');\r\noci_execute($stid);\r\n\r\necho \"&lt;table border='1'>\\n\";\r\nwhile ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {\r\n    echo \"&lt;tr>\\n\";\r\n    foreach ($row as $item) {\r\n        echo \"    &lt;td>\" . ($item !== null ? htmlentities($item, ENT_QUOTES) : \"&amp;nbsp;\") . \"&lt;\/td>\\n\";\r\n    }\r\n    echo \"&lt;\/tr>\\n\";\r\n}\r\necho \"&lt;\/table>\\n\";\r\n<\/div><\/pre>\n<div class=\"myt2\">\u53c2\u8003\u6587\u732e\uff1a<\/div>\n<p>1. <a href=\"http:\/\/us3.php.net\/oci8\">Oracle OCI8<\/a><\/p>\n<p>2. \u53c2\u8003\u4e86\u4fca\u8fbe\u7684\u4ee3\u7801<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u822c\u5927\u5bb6\u4e0d\u8fd9\u4e48\u505a\u3002 \u4e0d\u96be\uff0c\u548c\u8fde\u63a5MySQL\u5dee\u4e0d\u591a\u3002php\u9700\u8981\u4f7f\u7528OCI8\u6269\u5c55\u6765\u8fde\u63a5Oracle\uff0c\u53ef\u4ee5\u4f7f\u7528phpinfo\u6765\u67e5\u770b\u4f60\u662f\u5426\u5df2\u7ecf\u5b89\u88c5\u4e86\u8be5\u6269\u5c55\u3002\u5173\u4e8eOCI8\u7684\u8be6\u7ec6\u4f7f\u7528\u53ef\u4ee5\u76f4\u63a5\u53c2\u8003php\u7684Manual OCI8\uff0c\u672c\u6587\u4ec5\u505a\u4e00\u4e2a\u5165\u95e8\u4ecb\u7ecd\u3002 1. \u4f7f\u7528\u4ec0\u4e48\u5e10\u53f7\u8fde\u63a5 $ora_host = &#8220;172.19.*.259&#8243;; $ora_port=&#8221;1521&#8221;; $ora_sid = &#8220;orasid&#8221;; $ora_username = &#8220;orauser&#8221;; $ora_password = &#8220;orapwd&#8221;; $charset = &#8220;UTF8&#8221;; ### zhs16gbk ###<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":"","inline_featured_image":false,"_tocer_settings":[],"footnotes":""},"categories":[5],"tags":[61,119],"class_list":["post-2432","post","type-post","status-publish","format-standard","hentry","category-code-staff","tag-oracle-2","tag-php"],"_links":{"self":[{"href":"https:\/\/www.orczhou.com\/index.php\/wp-json\/wp\/v2\/posts\/2432","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.orczhou.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.orczhou.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.orczhou.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.orczhou.com\/index.php\/wp-json\/wp\/v2\/comments?post=2432"}],"version-history":[{"count":20,"href":"https:\/\/www.orczhou.com\/index.php\/wp-json\/wp\/v2\/posts\/2432\/revisions"}],"predecessor-version":[{"id":3801,"href":"https:\/\/www.orczhou.com\/index.php\/wp-json\/wp\/v2\/posts\/2432\/revisions\/3801"}],"wp:attachment":[{"href":"https:\/\/www.orczhou.com\/index.php\/wp-json\/wp\/v2\/media?parent=2432"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.orczhou.com\/index.php\/wp-json\/wp\/v2\/categories?post=2432"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.orczhou.com\/index.php\/wp-json\/wp\/v2\/tags?post=2432"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}