Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Tôi có tiêu chuẩn Windows Server 2008 R 2 với WampServer2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b.

Show

Tôi đã làm theo các hướng dẫn được cung cấp bởi Oracle, tất nhiên bằng cách sử dụng WAMP Cài đặt: Bài viết

Tôi đã sử dụng phiên bản khách hàng tức thời của Oracle: InstantClient-Basic-NT-11.2.0.4.0instantclient-basic-nt-11.2.0.4.0

Vấn đề là, khi tôi kích hoạt các dòng này trong httpd.conf, bất kỳ tệp PHP nào có tên là cho lỗi "bị cấm, bạn không có quyền truy cập /path /file.php trên máy chủ này.":httpd.conf, any php file called gives error "Forbidden You don't have permission to access /path/file.php on this server.":

FcgidInitialEnv PHPRC "C:/new_wamp/bin/php/php5.5.12/"
AddHandler fcgid-script .php
FcgidWrapper "C:/wamp/bin/php/php5.5.12/php-cgi.exe" .php

Ngoài ra có lỗi trong nhật ký lỗi PHP:

CẢNH BÁO PHP: Php Startup: Không thể tải Thư viện động 'C: /wamp/bin/php/php5.5.12/ext \ php_oci8_11g.dll' - %1 không phải là ứng dụng Win32 hợp lệ. không rõ trên dòng 0'C:/wamp/bin/php/php5.5.12/ext\php_oci8_11g.dll' - %1 is not a valid Win32 application. in Unknown on line 0

Nhưng InstantClient là phiên bản 32 bit. Theo như tôi đã tìm ra từ các cài đặt trước đó, hầu hết là vấn đề là trong 64 bit InstantClient?instantclient is 32bit version. As far as i have found out from previous installations, mostly problem is in 64bit instantclient?

Bất kỳ lời khuyên?

Thanks!

<Do not delete this text because it is a placeholder for the generated list of "main" topics when run in a browser>

Mục đích

Hướng dẫn này chỉ cho bạn cách sử dụng PHP với cơ sở dữ liệu Oracle 11g.

Thời gian để hoàn thành

Khoảng 2 giờ

Tổng quan

PHP là ngôn ngữ tập lệnh web phổ biến và thường được sử dụng để tạo các trang web dựa trên cơ sở dữ liệu. Hướng dẫn này giúp bạn bắt đầu với cơ sở dữ liệu PHP và Oracle bằng cách chỉ ra cách xây dựng một ứng dụng web và bằng cách cung cấp các kỹ thuật để sử dụng PHP với Oracle. Nếu bạn chưa quen với PHP, hãy xem lại Phụ lục: Php Primer để có được sự hiểu biết về ngôn ngữ PHP.

Điều kiện tiên quyết

Trước khi bắt đầu lời tiên tri này, xin vui lòng hoàn thành các điều kiện tiên quyết sau:

.

Cài đặt Cơ sở dữ liệu Oracle 11.2

.

Cài đặt Cơ sở dữ liệu Oracle 11.2

Bắt đầu gộp kết nối DRCP:

.

Cài đặt Cơ sở dữ liệu Oracle 11.2
HR schema and make the following changes:

Bắt đầu gộp kết nối DRCP:

.

Cài đặt Cơ sở dữ liệu Oracle 11.2

.

Cài đặt Cơ sở dữ liệu Oracle 11.2

Bắt đầu gộp kết nối DRCP:

.

Cài đặt Cơ sở dữ liệu Oracle 11.2

Bắt đầu gộp kết nối DRCP:

sqlplus / as sysdba
execute dbms_connection_pool.start_pool();
execute dbms_connection_pool.restore_defaults(); 

Tạo người dùng có tên PHPHOL bằng mật khẩu 'Chào mừng'. Cài đặt lược đồ nhân sự mẫu của Oracle và thực hiện các thay đổi sau:

 create sequence emp_id_seq start with 400;
   create trigger my_emp_id_trigger
   before insert on employees for each row
   begin
     select emp_id_seq.nextval into :new.employee_id from dual;
   end;
   /
   --
   -- Also to simplify the example we remove this trigger otherwise
   -- records can only be updated once without violating the
   -- PYTHONHOL.JHIST_EMP_ID_ST_DATE_PK constraint
   --

   drop trigger update_job_history;

   --
   -- Allow employees to be changed when testing the lab after hours.
   --
   drop trigger secure_employees; 

.

Cài đặt Cơ sở dữ liệu Oracle 11.2$HOME/public_html/connect.php

<?php
// Create connection to Oracle
$conn = oci_connect("phphol", "welcome", "//localhost/orcl");
if (!$conn) {
   $m = oci_error();
   echo $m['message'], "\n";
   exit;
}
else {
   print "Connected to Oracle!";
}
// Close the Oracle connection
oci_close($conn);
?>

Bắt đầu gộp kết nối DRCP:oci_connect() function contains the username, the password and the connection string. In this case, Oracle's Easy Connect connection string syntax is used. It consists of the hostname and the DB service name.

sqlplus / as sysdba
execute dbms_connection_pool.start_pool();
execute dbms_connection_pool.restore_defaults(); 
oci_close() function closes the connection. Any standard connections not explicitly closed will be automatically released when the script ends.

.

Cài đặt Cơ sở dữ liệu Oracle 11.2

http://localhost/~phphol/connect.php

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Bắt đầu gộp kết nối DRCP:

.

Cài đặt Cơ sở dữ liệu Oracle 11.2$HOME/public_html/usersess.sql

column username format a30
column logon_time format a18
set pagesize 1000 feedback off echo on

select username, to_char(logon_time, 'DD-MON-YY HH:MI:SS') logon_time
from v$session
where username is not null;

exit

Bắt đầu gộp kết nối DRCP: This SQL*Plus script shows the current database sessions, and what time they logged into the database.

.

Cài đặt Cơ sở dữ liệu Oracle 11.2

cd $HOME/public_html
sqlplus -l phphol/welcome @usersess.sql 

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Bắt đầu gộp kết nối DRCP:oci_connect() function has been closed.

.

Chỉnh sửa $ home/public_html/Connect.php và thay đổi oci_connect () để sử dụng kết nối liên tục oci_pconnect ().$HOME/public_html/connect.php and change oci_connect() to use a persistent connection oci_pconnect().

$ Conn = OCI_PConnect ("Phphol", "Chào mừng", "// LocalHost/Orcl");

Tải lại tập lệnh Connect.php trong trình duyệt. Bây giờ Rerurn Usersess.sql trong SQL*Plus.connect.php script in the browser. Now rerurn usersess.sql in SQL*Plus.

cd $HOME/public_html
sqlplus -l phphol/welcome @usersess.sql 

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Cần có hai người dùng được kết nối. Bạn có thể thấy nhiều hơn hai nếu bạn tải lại trang nhiều lần và Apache đã phân bổ các quy trình khác nhau để xử lý tập lệnh PHP. Theo mặc định, các kết nối liên tục vẫn mở cho đến khi quá trình Apache chấm dứt. Các tập lệnh PHP tiếp theo có thể sử dụng lại kết nối đã mở, khiến chúng chạy nhanh hơn.

Sử dụng gộp kết nối thường trú cơ sở dữ liệu

Tập hợp kết nối thường trú cơ sở dữ liệu là một tính năng mới của cơ sở dữ liệu Oracle 11G. Nó rất hữu ích cho các tập lệnh sống ngắn như thường được sử dụng bởi các ứng dụng web. Nó cho phép số lượng kết nối được chia tỷ lệ khi việc sử dụng trang web tăng lên. Nó cho phép nhiều quy trình Apache trên nhiều máy để chia sẻ một nhóm nhỏ các quy trình máy chủ cơ sở dữ liệu. Không có DRCP, kết nối PHP không liên tục phải bắt đầu và chấm dứt quy trình máy chủ và kết nối PHP liên tục giữ các tài nguyên cơ sở dữ liệu ngay cả khi PHP không hoạt động.

Bên dưới bên trái là sơ đồ của việc không phát sinh. Mỗi tập lệnh đều có các giao dịch máy chủ cơ sở dữ liệu riêng. Các tập lệnh không thực hiện bất kỳ công việc cơ sở dữ liệu nào vẫn giữ kết nối cho đến khi kết nối được đóng và máy chủ bị chấm dứt. Dưới đây là một sơ đồ với DRCP. Các tập lệnh có thể sử dụng các máy chủ cơ sở dữ liệu từ một nhóm máy chủ và trả lại chúng khi không còn cần thiết.

Các tập lệnh hàng loạt thực hiện các công việc chạy dài thường nên sử dụng các kết nối không có mặt.

Phần này của hướng dẫn cho thấy cách DRCP có thể được sử dụng bởi các ứng dụng mới hoặc hiện có mà không cần viết hoặc thay đổi bất kỳ logic ứng dụng nào. Thực hiện các bước sau:

.

Kiểm tra xem PHP có Set OCI8.Connection_Class không. Mở cửa sổ đầu cuối và thực hiện lệnh sau:oci8.connection_class set. Open a terminal window and execute the following command:

Php -r 'echo ini_get ("oci8.connection_class"), "\ n";'

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Lớp kết nối cho nhóm máy chủ cơ sở dữ liệu biết rằng các kết nối có liên quan. Thông tin phiên (như định dạng ngày mặc định) có thể được giữ lại giữa các cuộc gọi kết nối, mang lại lợi ích hiệu suất. Thông tin phiên sẽ bị loại bỏ nếu một máy chủ gộp sau đó được sử dụng lại bởi một ứng dụng khác với tên lớp kết nối riêng.

.

Xem lại mã trong $ home/public_html/query_pooled.php$HOME/public_html/query_pooled.php

<?php

$c = oci_pconnect("phphol", "welcome", "//localhost/orcl:pooled");
$s = oci_parse($c, 'select * from employees');
oci_execute($s);
oci_fetch_all($s, $res);
echo "<pre>\n"; var_dump($res); echo "</pre>\n";
?>

So sánh mã này với mã trong $ home/public_html/query_nonpooled.php$HOME/public_html/query_nonpooled.php

sqlplus / as sysdba
execute dbms_connection_pool.start_pool();
execute dbms_connection_pool.restore_defaults(); 
0

Sự khác biệt duy nhất là ": gộp" trong chuỗi kết nối Easy Connect trong query_pooled.php.:pooled" in the Easy Connect connection string in query_pooled.php.

.

Để chạy các tập lệnh, công cụ Apache Benchmark được sử dụng. Lệnh này liên tục tải một trang web, đo lường hiệu suất của nó. Từ cửa sổ đầu cuối, thực hiện các mục sau:

sqlplus / as sysdba
execute dbms_connection_pool.start_pool();
execute dbms_connection_pool.restore_defaults(); 
1

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Lệnh trên gửi Apache 150 yêu cầu đồng thời cho tập lệnh, liên tục trong 30 giây.

.

Bây giờ hãy nhìn vào số lượng kết nối cơ sở dữ liệu mở. Mở một cửa sổ đầu cuối khác, thực hiện các mục sau:

sqlplus / as sysdba
execute dbms_connection_pool.start_pool();
execute dbms_connection_pool.restore_defaults(); 
2

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Nhóm DRCP mặc định tối đa là 40. Bạn thấy tối đa 40 kết nối với tên người dùng PHPHOL, tùy thuộc vào số lượng quy trình Apache đã xử lý các yêu cầu 'AB'. Bạn cũng có thể cần thực hiện truy vấn trong khi 'AB' đang chạy để xem các máy chủ gộp hoạt động.

Oracle quản lý nhóm DRCP, thu hẹp nó sau một thời gian chờ quy định.

.

Bây giờ, bạn sẽ chạy cùng một lệnh ngoại trừ chạy tập lệnh không có mặt để so sánh sự khác biệt. Từ cửa sổ đầu cuối, thực hiện các mục sau:

sqlplus / as sysdba
execute dbms_connection_pool.start_pool();
execute dbms_connection_pool.restore_defaults(); 
3

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

.

Bây giờ hãy nhìn vào số lượng kết nối cơ sở dữ liệu mở. Mở một cửa sổ đầu cuối khác, thực hiện các mục sau:

sqlplus / as sysdba
execute dbms_connection_pool.start_pool();
execute dbms_connection_pool.restore_defaults(); 
2

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Nhóm DRCP mặc định tối đa là 40. Bạn thấy tối đa 40 kết nối với tên người dùng PHPHOL, tùy thuộc vào số lượng quy trình Apache đã xử lý các yêu cầu 'AB'. Bạn cũng có thể cần thực hiện truy vấn trong khi 'AB' đang chạy để xem các máy chủ gộp hoạt động.

Oracle quản lý nhóm DRCP, thu hẹp nó sau một thời gian chờ quy định.

Bây giờ, bạn sẽ chạy cùng một lệnh ngoại trừ chạy tập lệnh không có mặt để so sánh sự khác biệt. Từ cửa sổ đầu cuối, thực hiện các mục sau:V$SESSION.

Nhiều hàng hơn trước được trả lại. Các hàng với

(TNS V1-V3)query_pooled.php a little slower than query_nonpooled.php. But the non-pooled script causes every single Apache process to open a separate connection to the database. For larger sites, or where memory is limited, the overall benefits of DRCP are significant.

tương ứng với quá trình Apache đang chạy giữ kết nối cơ sở dữ liệu mở. Đối với PHP, Apache chạy ở chế độ đa quy trình, sinh sản con xử lý từng quy trình có thể xử lý một tập lệnh PHP. Tùy thuộc vào cách Apache phân bổ các quy trình này để xử lý các yêu cầu "AB", bạn có thể thấy một số lượng hàng khác nhau trong phiên V $.

So sánh số lượng yêu cầu hoàn thành trong mỗi lần chạy. Bạn có thể muốn chạy từng tập lệnh một vài lần để làm nóng bộ nhớ cache.

1. Phân tích câu lệnh để thực hiện. the statement for execution.
2. Liên kết các giá trị dữ liệu (tùy chọn). data values (optional).
3. Thực thi câu lệnh. the statement.
4. Tìm nạp các kết quả từ cơ sở dữ liệu. the results from the database.

Để tạo một truy vấn đơn giản và hiển thị kết quả trong bảng HTML, hãy thực hiện các bước sau.

.

Xem lại mã trong $ home/public_html/query.php$HOME/public_html/query.php

sqlplus / as sysdba
execute dbms_connection_pool.start_pool();
execute dbms_connection_pool.restore_defaults(); 
5

Hàm oci_parse () phân tích lại câu lệnh.oci_parse() function parses the statement.

Hàm OCI_execute () thực thi câu lệnh phân tích cú pháp.oci_execute() function executes the parsed statement.

Hàm OCI_Fetch_Array () truy xuất một hàng kết quả của truy vấn dưới dạng mảng kết hợp và bao gồm các null.oci_fetch_array() function retrieves a row of results of the query as an associative array, and includes nulls.

Hàm HTMLENTITY () thoát khỏi bất kỳ văn bản nào giống với các thẻ HTML để nó hiển thị chính xác trong trình duyệt.htmlentities() function escapes any text resembling HTML tags so it displays correctly in the browser.

.

Xem lại mã trong $ home/public_html/query.php

sqlplus / as sysdba
execute dbms_connection_pool.start_pool();
execute dbms_connection_pool.restore_defaults(); 
6

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Hàm oci_parse () phân tích lại câu lệnh.

Hàm OCI_execute () thực thi câu lệnh phân tích cú pháp.OCI_ASSOC parameter fetches the row as an associative arrary of column names and column data.

Hàm OCI_Fetch_Array () truy xuất một hàng kết quả của truy vấn dưới dạng mảng kết hợp và bao gồm các null.OCI_NUM parameter can be passed to oci_fetch_array() to fetch the row as a numeric array.

Hàm HTMLENTITY () thoát khỏi bất kỳ văn bản nào giống với các thẻ HTML để nó hiển thị chính xác trong trình duyệt.

Từ trình duyệt web của bạn, hãy nhập URL sau để hiển thị đầu ra: Bind variables improve code reusability, and can reduce the risk of SQL Injection attacks.

Kết quả của truy vấn được hiển thị trong trình duyệt web.

.

Xem lại mã trong $ home/public_html/query.php$HOME/public_html/bind.php

Hàm oci_parse () phân tích lại câu lệnh.

.

Xem lại mã trong $ home/public_html/query.php

sqlplus / as sysdba
execute dbms_connection_pool.start_pool();
execute dbms_connection_pool.restore_defaults(); 
8

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Hàm oci_parse () phân tích lại câu lệnh.$myeid variable is bound to the :eidbv bind variable so when the query is re-executed the new value of $myeid is passed to the query. This allows you to execute the statement again, without reparsing it with the new value, and can improve performance of your code.

Hàm OCI_execute () thực thi câu lệnh phân tích cú pháp.EMPLOYEE_ID column of the EMPLOYEES table, and edit bind.php to use IDs that exist in the table.

Hàm OCI_Fetch_Array () truy xuất một hàng kết quả của truy vấn dưới dạng mảng kết hợp và bao gồm các null.

Hàm HTMLENTITY () thoát khỏi bất kỳ văn bản nào giống với các thẻ HTML để nó hiển thị chính xác trong trình duyệt.

Từ trình duyệt web của bạn, hãy nhập URL sau để hiển thị đầu ra:oci_commit() and oci_rollback() functions used to control transactions. At the end of a PHP script, any uncommitted data is rolled back.

Kết quả của truy vấn được hiển thị trong trình duyệt web.

Tham số OCI_ASSOC tìm nạp hàng như một sự kết hợp của tên cột và dữ liệu cột.

.

Xem lại mã trong $ home/public_html/query.php

sqlplus / as sysdba
execute dbms_connection_pool.start_pool();
execute dbms_connection_pool.restore_defaults(); 
9

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

.

Xem lại mã trong $ home/public_html/query.php$HOME/public_html/trans_rollback.php

 create sequence emp_id_seq start with 400;
   create trigger my_emp_id_trigger
   before insert on employees for each row
   begin
     select emp_id_seq.nextval into :new.employee_id from dual;
   end;
   /
   --
   -- Also to simplify the example we remove this trigger otherwise
   -- records can only be updated once without violating the
   -- PYTHONHOL.JHIST_EMP_ID_ST_DATE_PK constraint
   --

   drop trigger update_job_history;

   --
   -- Allow employees to be changed when testing the lab after hours.
   --
   drop trigger secure_employees; 
0

Hàm oci_parse () phân tích lại câu lệnh.OCI_DEFAULT parameter overrides the basic behavior of oci_execute().

.

Xem lại mã trong $ home/public_html/query.php

 create sequence emp_id_seq start with 400;
   create trigger my_emp_id_trigger
   before insert on employees for each row
   begin
     select emp_id_seq.nextval into :new.employee_id from dual;
   end;
   /
   --
   -- Also to simplify the example we remove this trigger otherwise
   -- records can only be updated once without violating the
   -- PYTHONHOL.JHIST_EMP_ID_ST_DATE_PK constraint
   --

   drop trigger update_job_history;

   --
   -- Allow employees to be changed when testing the lab after hours.
   --
   drop trigger secure_employees; 
1

Hàm oci_parse () phân tích lại câu lệnh.

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

.

Xem lại mã trong $ home/public_html/query.php

 create sequence emp_id_seq start with 400;
   create trigger my_emp_id_trigger
   before insert on employees for each row
   begin
     select emp_id_seq.nextval into :new.employee_id from dual;
   end;
   /
   --
   -- Also to simplify the example we remove this trigger otherwise
   -- records can only be updated once without violating the
   -- PYTHONHOL.JHIST_EMP_ID_ST_DATE_PK constraint
   --

   drop trigger update_job_history;

   --
   -- Allow employees to be changed when testing the lab after hours.
   --
   drop trigger secure_employees; 
2

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

.

Xem lại mã trong $ home/public_html/query.php$HOME/public_html/trans_autocommit.php

 create sequence emp_id_seq start with 400;
   create trigger my_emp_id_trigger
   before insert on employees for each row
   begin
     select emp_id_seq.nextval into :new.employee_id from dual;
   end;
   /
   --
   -- Also to simplify the example we remove this trigger otherwise
   -- records can only be updated once without violating the
   -- PYTHONHOL.JHIST_EMP_ID_ST_DATE_PK constraint
   --

   drop trigger update_job_history;

   --
   -- Allow employees to be changed when testing the lab after hours.
   --
   drop trigger secure_employees; 
3

Hàm oci_parse () phân tích lại câu lệnh.trans1.php in that there is no OCI_DEFAULT when the data is inserted.  This means the new data is committed by the oci_execute() call.

.

Xem lại mã trong $ home/public_html/query.php

 create sequence emp_id_seq start with 400;
   create trigger my_emp_id_trigger
   before insert on employees for each row
   begin
     select emp_id_seq.nextval into :new.employee_id from dual;
   end;
   /
   --
   -- Also to simplify the example we remove this trigger otherwise
   -- records can only be updated once without violating the
   -- PYTHONHOL.JHIST_EMP_ID_ST_DATE_PK constraint
   --

   drop trigger update_job_history;

   --
   -- Allow employees to be changed when testing the lab after hours.
   --
   drop trigger secure_employees; 
4

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Hàm oci_parse () phân tích lại câu lệnh.

.

Xem lại mã trong $ home/public_html/query.php

 create sequence emp_id_seq start with 400;
   create trigger my_emp_id_trigger
   before insert on employees for each row
   begin
     select emp_id_seq.nextval into :new.employee_id from dual;
   end;
   /
   --
   -- Also to simplify the example we remove this trigger otherwise
   -- records can only be updated once without violating the
   -- PYTHONHOL.JHIST_EMP_ID_ST_DATE_PK constraint
   --

   drop trigger update_job_history;

   --
   -- Allow employees to be changed when testing the lab after hours.
   --
   drop trigger secure_employees; 
2

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Hàm oci_parse () phân tích lại câu lệnh.

.

Xem lại mã trong $ home/public_html/query.php

Hàm oci_parse () phân tích lại câu lệnh.$HOME/public_html/trans_time_autocommit.php

Hàm OCI_execute () thực thi câu lệnh phân tích cú pháp.

 create sequence emp_id_seq start with 400;
   create trigger my_emp_id_trigger
   before insert on employees for each row
   begin
     select emp_id_seq.nextval into :new.employee_id from dual;
   end;
   /
   --
   -- Also to simplify the example we remove this trigger otherwise
   -- records can only be updated once without violating the
   -- PYTHONHOL.JHIST_EMP_ID_ST_DATE_PK constraint
   --

   drop trigger update_job_history;

   --
   -- Allow employees to be changed when testing the lab after hours.
   --
   drop trigger secure_employees; 
6

Hàm OCI_Fetch_Array () truy xuất một hàng kết quả của truy vấn dưới dạng mảng kết hợp và bao gồm các null.

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Hàm HTMLENTITY () thoát khỏi bất kỳ văn bản nào giống với các thẻ HTML để nó hiển thị chính xác trong trình duyệt.trans_autocommit.php.

Từ trình duyệt web của bạn, hãy nhập URL sau để hiển thị đầu ra: Your time values may differ depending on the hardware resources you are using.

.

Bây giờ xem lại tập lệnh trans_time_explicit.php. Sự khác biệt duy nhất trong tập lệnh này là trong hàm do_insert () OCI_Default đã được thêm vào để nó không tự động cam kết và một cam kết rõ ràng đã được thêm vào sau khi vòng chèn: trans_time_explicit.php script. The only difference in this script is that in the do_insert() function OCI_DEFAULT has been added so it doesn't automatically commit, and an explicit commit has been added after the insertion loop:

 create sequence emp_id_seq start with 400;
   create trigger my_emp_id_trigger
   before insert on employees for each row
   begin
     select emp_id_seq.nextval into :new.employee_id from dual;
   end;
   /
   --
   -- Also to simplify the example we remove this trigger otherwise
   -- records can only be updated once without violating the
   -- PYTHONHOL.JHIST_EMP_ID_ST_DATE_PK constraint
   --

   drop trigger update_job_history;

   --
   -- Allow employees to be changed when testing the lab after hours.
   --
   drop trigger secure_employees; 
7

Tải URL http: //localhost/~phphol/trans_time_explicit.php. Thời gian chèn là ít hơn.

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Nói chung, bạn muốn tất cả hoặc không có dữ liệu của bạn cam kết. Thực hiện kiểm soát giao dịch của riêng bạn có hiệu suất và lợi ích tích hợp dữ liệu.

Lưu ý: Giá trị thời gian của bạn có thể khác nhau tùy thuộc vào tài nguyên phần cứng bạn đang sử dụng. Your time values may differ depending on the hardware resources you are using.

Sử dụng các thủ tục được lưu trữ

PL/SQL là mở rộng ngôn ngữ thủ tục của Oracle cho SQL. Các quy trình và chức năng PL/SQL được lưu trữ trong cơ sở dữ liệu. Sử dụng PL/SQL cho phép tất cả các ứng dụng cơ sở dữ liệu tái sử dụng logic, bất kể ứng dụng truy cập cơ sở dữ liệu như thế nào. Nhiều hoạt động liên quan đến dữ liệu có thể được thực hiện trong PL/SQL nhanh hơn so với trích xuất dữ liệu vào một chương trình (ví dụ: PHP) và sau đó xử lý nó. Oracle cũng hỗ trợ các thủ tục lưu trữ Java.s reuse logic, no matter how the application accesses the database. Many data-related operations can be performed in PL/SQL faster than extracting the data into a program (for example, PHP) and then processing it. Oracle also supports Java stored procedures.

Trong hướng dẫn này, bạn sẽ tạo một quy trình được lưu trữ PL/SQL và gọi nó trong tập lệnh PHP. Thực hiện các bước sau:

.

Bắt đầu SQL*Plus và tạo một bảng mới, PTAB với lệnh sau:ptab with the following command:

 create sequence emp_id_seq start with 400;
   create trigger my_emp_id_trigger
   before insert on employees for each row
   begin
     select emp_id_seq.nextval into :new.employee_id from dual;
   end;
   /
   --
   -- Also to simplify the example we remove this trigger otherwise
   -- records can only be updated once without violating the
   -- PYTHONHOL.JHIST_EMP_ID_ST_DATE_PK constraint
   --

   drop trigger update_job_history;

   --
   -- Allow employees to be changed when testing the lab after hours.
   --
   drop trigger secure_employees; 
8

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

.

Trong SQL*Plus, hãy tạo một quy trình được lưu trữ, MyProc, để chèn dữ liệu vào bảng PTAB, với các lệnh sau:myproc, to insert data into the ptab table, with the following commands:

 create sequence emp_id_seq start with 400;
   create trigger my_emp_id_trigger
   before insert on employees for each row
   begin
     select emp_id_seq.nextval into :new.employee_id from dual;
   end;
   /
   --
   -- Also to simplify the example we remove this trigger otherwise
   -- records can only be updated once without violating the
   -- PYTHONHOL.JHIST_EMP_ID_ST_DATE_PK constraint
   --

   drop trigger update_job_history;

   --
   -- Allow employees to be changed when testing the lab after hours.
   --
   drop trigger secure_employees; 
9

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

.

Xem lại mã trong $ home/public_html/Proc.php$HOME/public_html/proc.php

oci8.connection_class = MYPHPAPP 
0

.

Từ trình duyệt web, nhập URL sau để hiển thị đầu ra:

oci8.connection_class = MYPHPAPP 
1

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Tập lệnh PHP đã tạo ra một hàng mới trong bảng PTAB bằng cách gọi quy trình được lưu trữ MyProc. Bảng PTAB có một hàng mới với các giá trị "MyData" và 123.ptab table by calling the stored procedure myproc. The table ptab has a new row with the values "mydata" and 123.

Chuyển sang phiên SQL*Plus của bạn và truy vấn bảng để hiển thị hàng mới:

chọn * từ ptab;

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

.

Mở rộng Proc.php để sử dụng một biến liên kết. Thay đổi Proc.php thành phần sau (thay đổi in đậm):proc.php to use a bind variable. Change proc.php to the following (changes are in bold):

oci8.connection_class = MYPHPAPP 
2

Hàm OCI_BIND_BY_NAME () liên kết biến PHP $ V thành ": BV" và thử nghiệm Thay đổi giá trị được chèn bằng cách thay đổi giá trị trong $ v.oci_bind_by_name() function binds the PHP variable $v to ":bv" and experiment changing the value inserted by changing the value in $v.

Chạy lại url sau:

oci8.connection_class = MYPHPAPP 
1

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Chuyển sang phiên SQL*Plus của bạn và truy vấn bảng một lần nữa để hiển thị hàng mới:

chọn * từ ptab;

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

.

Các chức năng được lưu trữ PL/SQL cũng thường được sử dụng trong Oracle. Trong sql*plus, hãy tạo hàm được lưu trữ PL/SQL myFunc () để chèn một hàng vào bảng PTAB và trả về gấp đôi giá trị chèn:myfunc()to insert a row into the ptab table, and return double the inserted value:

oci8.connection_class = MYPHPAPP 
4

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

.

Xem lại mã trong $ home/public_html/func.php$HOME/public_html/func.php

oci8.connection_class = MYPHPAPP 
5

Vì một giá trị đang được trả về, tham số độ dài tùy chọn thành OCI_BIND_BY_NAME () được đặt thành 10 để PHP có thể phân bổ số lượng bộ nhớ chính xác để giữ tới 10 chữ sốoci_bind_by_name() is set to 10 so PHP can allocate the correct amount of memory to hold up to 10 digits

Chạy lại url sau:

oci8.connection_class = MYPHPAPP 
6

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Chuyển sang phiên SQL*Plus của bạn và truy vấn bảng một lần nữa để hiển thị hàng mới:

chọn * từ ptab;

.

Các chức năng được lưu trữ PL/SQL cũng thường được sử dụng trong Oracle. Trong sql*plus, hãy tạo hàm được lưu trữ PL/SQL myFunc () để chèn một hàng vào bảng PTAB và trả về gấp đôi giá trị chèn:$HOME/public_html/fetch_prefetch.sql

oci8.connection_class = MYPHPAPP 
7

Xem lại mã trong $ home/public_html/func.php

Vì một giá trị đang được trả về, tham số độ dài tùy chọn thành OCI_BIND_BY_NAME () được đặt thành 10 để PHP có thể phân bổ số lượng bộ nhớ chính xác để giữ tới 10 chữ số

Cải thiện hiệu suất truy vấn

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

.

Phần này cho thấy một số cách để cải thiện hiệu suất truy vấn. Thực hiện các bước sau:$HOME/public_html/fetch_prefetch.php

oci8.connection_class = MYPHPAPP 
8

Xem lại SQL trong $ home/public_html/fetch_prefetch.sql

Kịch bản này tạo ra một bảng với một số lượng lớn các hàng. Từ phiên SQLPLUS của bạn, hãy chạy như sau:

.

Kết nối PHPHOL/Chào mừng

oci8.connection_class = MYPHPAPP 
9

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

@fetch_prefetch

Xem lại mã trong $ home/public_html/fetch_prefetch.phpphp.ini. Prior to PHP 5.3, the default prefetch size was 10 rows. In 5.3, it is 100 rows. You should choose a suitable default value for your application, and use oci_set_prefetch() for specific queries that need a different value.

Điều này thực hiện cùng một truy vấn với các kích thước trước khác nhau. Giới thiệu trước là một hình thức đệm hàng bên trong. Số lượng hàng trong bộ đệm là giá trị trước. Giá trị trước càng lớn, số lượng truy cập cơ sở dữ liệu vật lý càng ít để trả lại tất cả dữ liệu cho PHP, bởi vì mỗi yêu cầu vật lý cơ bản cho cơ sở dữ liệu trả về nhiều hơn một hàng. Điều này có thể giúp cải thiện hiệu suất. Mã PHP không cần thay đổi để xử lý các kích thước trước khác nhau. Bộ đệm được xử lý bằng mã Oracle.

.

Bộ trợ giúp tập lệnh được bao gồm bao gồm các hàm thời gian đơn giản () và hết thời gian (), cũng như một số hàm thiết lập bổ sung được sử dụng sau này.oci_bind_array_by_name() function that allows a PHP array to be retrieved from, or passed to, a PL/SQL procedure.

Tải URL sau để hiển thị đầu ra:$HOME/public_html/fetch_bulk.sql

<?php
// Create connection to Oracle
$conn = oci_connect("phphol", "welcome", "//localhost/orcl");
if (!$conn) {
   $m = oci_error();
   echo $m['message'], "\n";
   exit;
}
else {
   print "Connected to Oracle!";
}
// Close the Oracle connection
oci_close($conn);
?>
0

Tải lại một vài lần để xem thời gian trung bình. Giá trị thời gian của bạn có thể khác nhau tùy thuộc vào tài nguyên phần cứng của bạn, v.v.BIGTAB using a PL/SQL BULK COLLECT statement, and returns the results in a PL/SQL array. From your sqlplus session, run the following:

<?php
// Create connection to Oracle
$conn = oci_connect("phphol", "welcome", "//localhost/orcl");
if (!$conn) {
   $m = oci_error();
   echo $m['message'], "\n";
   exit;
}
else {
   print "Connected to Oracle!";
}
// Close the Oracle connection
oci_close($conn);
?>
1

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

.

Xem lại mã trong $ home/public_html/fetch_bulk.php$HOME/public_html/fetch_bulk.php

<?php
// Create connection to Oracle
$conn = oci_connect("phphol", "welcome", "//localhost/orcl");
if (!$conn) {
   $m = oci_error();
   echo $m['message'], "\n";
   exit;
}
else {
   print "Connected to Oracle!";
}
// Close the Oracle connection
oci_close($conn);
?>
2

Mã này gọi gói PL/SQL và liên kết một biến PHP để giữ mảng dữ liệu được trả về. Không cần cuộc gọi tìm nạp OCI8.

.

Tải URL sau để hiển thị đầu ra:

<?php
// Create connection to Oracle
$conn = oci_connect("phphol", "welcome", "//localhost/orcl");
if (!$conn) {
   $m = oci_error();
   echo $m['message'], "\n";
   exit;
}
else {
   print "Connected to Oracle!";
}
// Close the Oracle connection
oci_close($conn);
?>
3

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Tải lại một vài lần để xem thời gian trung bình.

Binding mảng là một kỹ thuật hữu ích để giảm chi phí cơ sở dữ liệu khi chèn hoặc truy xuất dữ liệu.

Ví dụ này không in kết quả trả lại. Nếu bạn muốn xem chúng, hãy thêm "var_dump ($ res);" Trước câu lệnh trả về chức năng. Đầu ra cho thấy các chuỗi dữ liệu 20 ký tự ngẫu nhiên được tạo bởi fetch_prefetch.sql, mà bạn đã chạy trước đó.var_dump($res);" before the function return statement. The output shows the random 20-character data strings created by fetch_prefetch.sql, which you ran earlier.

Sử dụng LOB: Tải lên và truy vấn hình ảnh

Các cột đối tượng lớn của ký tự Oracle (CLOB) và các cột đối tượng lớn nhị phân (BLOB) (và các biến PL/SQL) có thể chứa một lượng dữ liệu rất lớn. Có nhiều cách khác nhau để tạo chúng để tối ưu hóa lưu trữ Oracle. Ngoài ra còn có một gói được cung cấp trước DBMS_LOB giúp thao túng chúng trong PL/SQL dễ dàng.DBMS_LOB that makes manipulating them in PL/SQL easy.

Để tạo một ứng dụng nhỏ để tải và hiển thị hình ảnh vào cơ sở dữ liệu, hãy thực hiện các bước sau.

.

Trước khi thực hiện phần này, hãy tạo một bảng để lưu trữ một đốm màu. Trong SQL*Plus đã đăng nhập dưới dạng PHPHOL, thực thi các lệnh sau:phphol, execute the following commands:

<?php
// Create connection to Oracle
$conn = oci_connect("phphol", "welcome", "//localhost/orcl");
if (!$conn) {
   $m = oci_error();
   echo $m['message'], "\n";
   exit;
}
else {
   print "Connected to Oracle!";
}
// Close the Oracle connection
oci_close($conn);
?>
4

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

.

Xem lại mã trong $ home/public_html/blobins.php$HOME/public_html/blobins.php

<?php
// Create connection to Oracle
$conn = oci_connect("phphol", "welcome", "//localhost/orcl");
if (!$conn) {
   $m = oci_error();
   echo $m['message'], "\n";
   exit;
}
else {
   print "Connected to Oracle!";
}
// Close the Oracle connection
oci_close($conn);
?>
5

Điều này cho thấy mã HTML được nhúng trong nhiều khối PHP. Cụ thể, câu lệnh PHP 'IF' bao quanh mã HTML. Lần đầu tiên tập lệnh được tải, biểu mẫu tải lên HTML được hiển thị. PHP đã điền vào tên hành động biểu mẫu để gọi cùng một tập lệnh.

Có một mối quan hệ trực tiếp giữa tên biểu mẫu HTML Tên = "lob_upload" và biến PHP đặc biệt $ _files ['lob_upload']. Khi biểu mẫu được gọi với dữ liệu, tập lệnh sẽ xóa bất kỳ hình ảnh hiện có nào khỏi bảng và chèn hình ảnh mới.name="lob_upload" and the special PHP variable $_FILES['lob_upload']. When the form is called with data, the script deletes any existing image from the table, and inserts the new picture.

Kịch bản hiển thị việc sử dụng oci_new_descriptor () được liên kết với vị trí trống_blob (). Phương thức lob-> saveFile () chèn hình ảnh vào hàng mới được tạo. Lưu ý tùy chọn OCI_DEFAULT cho OCI_EXECUTE () là cần thiết cho phương thức LOB tiếp theo hoạt động.oci_new_descriptor() which is bound to the empty_blob() location. The LOB->savefile() method inserts the picture to the newly created row. Note the OCI_DEFAULT option to oci_execute() is necessary for the subsequent LOB method to work.

.

Từ trình duyệt web của bạn, hãy nhập URL sau để hiển thị đầu ra:

<?php
// Create connection to Oracle
$conn = oci_connect("phphol", "welcome", "//localhost/orcl");
if (!$conn) {
   $m = oci_error();
   echo $m['message'], "\n";
   exit;
}
else {
   print "Connected to Oracle!";
}
// Close the Oracle connection
oci_close($conn);
?>
6

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Nó hiển thị một biểu mẫu web với các nút duyệt và tải lên. Nhấp vào Duyệt.Browse.

.

Chọn Oracle.jpg từ thư mục/home/phphol/public_html và nhấp vào mở.oracle.jpg from the /home/phphol/public_html directory and click Open.

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

.

Nhấp vào Tải lên.Upload.

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Hành động biểu mẫu gọi tập lệnh là lần thứ hai, nhưng bây giờ biến đặc biệt $ _files ['lob_upload'] đã được đặt và hình ảnh được tải lên. Thông điệp Echo thành công được hiển thị.$_FILES['lob_upload'] is set and picture is uploaded. The successful echo message is displayed.

Hình ảnh đã được tải lên máy chủ web.

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

.

Để hiển thị hình ảnh, hãy xem lại mã trong $ home/public_html/blobview.php$HOME/public_html/blobview.php

<?php
// Create connection to Oracle
$conn = oci_connect("phphol", "welcome", "//localhost/orcl");
if (!$conn) {
   $m = oci_error();
   echo $m['message'], "\n";
   exit;
}
else {
   print "Connected to Oracle!";
}
// Close the Oracle connection
oci_close($conn);
?>
7

.

Từ trình duyệt web của bạn, hãy nhập URL sau để hiển thị đầu ra:

<?php
// Create connection to Oracle
$conn = oci_connect("phphol", "welcome", "//localhost/orcl");
if (!$conn) {
   $m = oci_error();
   echo $m['message'], "\n";
   exit;
}
else {
   print "Connected to Oracle!";
}
// Close the Oracle connection
oci_close($conn);
?>
8

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Nó hiển thị một biểu mẫu web với các nút duyệt và tải lên. Nhấp vào Duyệt. and no echo statements in the script, because otherwise the wrong HTTP header will be sent and the browser won't display the image properly. If you have problems, comment out the header() function call and see what is displayed.

Chọn Oracle.jpg từ thư mục/home/phphol/public_html và nhấp vào mở.

Nhấp vào Tải lên.

.

Hành động biểu mẫu gọi tập lệnh là lần thứ hai, nhưng bây giờ biến đặc biệt $ _files ['lob_upload'] đã được đặt và hình ảnh được tải lên. Thông điệp Echo thành công được hiển thị.$HOME/public_html/app_info.php
<?php
// Create connection to Oracle
$conn = oci_connect("phphol", "welcome", "//localhost/orcl");
if (!$conn) {
   $m = oci_error();
   echo $m['message'], "\n";
   exit;
}
else {
   print "Connected to Oracle!";
}
// Close the Oracle connection
oci_close($conn);
?>
9

.

Hình ảnh đã được tải lên máy chủ web.

http://localhost/~phphol/connect.php
0

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

.

Để hiển thị hình ảnh, hãy xem lại mã trong $ home/public_html/blobview.php$HOME/public_html/app_info.sql

http://localhost/~phphol/connect.php
1

<?php
// Create connection to Oracle
$conn = oci_connect("phphol", "welcome", "//localhost/orcl");
if (!$conn) {
   $m = oci_error();
   echo $m['message'], "\n";
   exit;
}
else {
   print "Connected to Oracle!";
}
// Close the Oracle connection
oci_close($conn);
?>
7

.

Đảm bảo không có khoảng trắng nào trước đây

http://localhost/~phphol/connect.php
2

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Đặt thông tin theo dõiV$SQLAREA.

OCI8 có một số chức năng gửi dữ liệu meta đến cơ sở dữ liệu khi các câu lệnh được thực thi. Chúng được hiển thị trong nhiều công cụ Oracle và rất hữu ích cho việc giám sát và truy tìm ứng dụng.

Để hiển thị hai trong số các chức năng, hãy xem lại mã trong $ home/public_html/app_info.php ________ 49

Từ trình duyệt web của bạn, hãy nhập URL sau để hiển thị đầu ra cơ bản:

.

Xem lại SQL trong $ home/public_html/app_info.sql$HOME/public_html/ajax_id.php

Tập lệnh này hiển thị các câu lệnh SQL được thực thi trước đó trong cơ sở dữ liệu bởi mô -đun trang chủ.

Mở cửa sổ đầu cuối và nhập các lệnh sau để chạy tập lệnh SQL.

.

Tập lệnh SQL*Plus hiển thị dữ liệu meta được lưu với câu lệnh. Dữ liệu meta có thể được sử dụng để truy tìm hoặc xác định vị trí trong ứng dụng PHP của câu lệnh SQL sai. Lưu ý chỉ thông tin ứng dụng từ lần thực hiện đầu tiên của một câu lệnh được lưu trữ trong v $ sqlarea.

http://localhost/~phphol/connect.php
4

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

.

Kết hợp Ajax vào trang của bạn$HOME/public_html/ajax_id.html

Phần này hiển thị kỹ thuật cơ bản để cập nhật một phần của một trang mà không tải lại toàn bộ nội dung. Thực hiện các nhiệm vụ sau:makeRequest().

Bạn có thể sử dụng XMLHTTPREQUEST để cập nhật một phần của trang mà không tải lại toàn bộ nội dung trang. Thực hiện các bước sau:

.

Tập lệnh SQL*Plus hiển thị dữ liệu meta được lưu với câu lệnh. Dữ liệu meta có thể được sử dụng để truy tìm hoặc xác định vị trí trong ứng dụng PHP của câu lệnh SQL sai. Lưu ý chỉ thông tin ứng dụng từ lần thực hiện đầu tiên của một câu lệnh được lưu trữ trong v $ sqlarea.

http://localhost/~phphol/connect.php
6

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Kết hợp Ajax vào trang của bạnOK to dismiss the alert window.

Phần này hiển thị kỹ thuật cơ bản để cập nhật một phần của một trang mà không tải lại toàn bộ nội dung. Thực hiện các nhiệm vụ sau: if you use Internet Explorer, you will need to edit ajax_id.html and change the XMLHttpRequest() call to ActiveXObject("Msxml2.XMLHTTP") or ActiveXObject("Microsoft.XMLHTTP").

Khi trang HTML được tải, hàm javascript makerequest () được gọi. Nó chuẩn bị một yêu cầu xmlhttprequest để gọi ajax_id.php. Một chức năng gọi lại trên readyStateChange được đặt. Cuối cùng, yêu cầu được gửi đến máy chủ web không đồng bộ.makeRequest() javascript function is called. It prepares an XMLHttpRequest request to call ajax_id.php. A callback function onreadystatechange is set. Finally the request is sent to the webserver asynchronously.

Khi chức năng gọi lại được thông báo rằng yêu cầu máy chủ web đã được trả về, đầu ra từ ajax_id.php được hiển thị bởi hàm alert (). Trong ứng dụng web, tập lệnh Java có thể được gọi bởi các sự kiện khác nhau và có thể được thực hiện để thay đổi nội dung của trang hiện tại.ajax_id.php is displayed by the alert() function. In web application, the Java script could be invoked by various
events and could be made to alter the content of the current page.

.

Chỉnh sửa ajax_id.html và thay đổi 185 thành 186.ajax_id.html and change 185 to 186.

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

.

Chỉnh sửa ajax_id.html và thay đổi 185 thành 186.OK to dismiss the alert window.

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Tải lại nó trong trình duyệt. Giá trị mới được hiển thị. Bấm OK để loại bỏ cửa sổ cảnh báo.You may also need to flush the browser cache to see the changed value.

Lưu ý: Bạn cũng có thể cần phải xóa bộ đệm trình duyệt để xem giá trị thay đổi.

Bản tóm tắt

  • Trong hướng dẫn này, bạn đã học được cách:
  • Tạo một kết nối
  • Sử dụng gộp kết nối thường trú cơ sở dữ liệu
  • Tìm nạp dữ liệu
  • Sử dụng các biến liên kết
  • Sử dụng giao dịch
  • Gọi PL/SQL
  • Cải thiện hiệu suất truy vấn
  • Sử dụng LOB để tải lên và truy vấn hình ảnh

Kết hợp Ajax vào trang của bạn

Phụ lục: Primer PHP

PHP là một ngôn ngữ kịch bản được đánh máy động. Nó thường được nhìn thấy trong các ứng dụng web nhưng có thể được sử dụng để chạy các tập lệnh dòng lệnh. Cú pháp php cơ bản là đơn giản để học. Nó có các vòng lặp quen thuộc, kiểm tra và cấu trúc chuyển nhượng. Các dòng được chấm dứt với một đại hội.

http://localhost/~phphol/connect.php
7

Chuỗi có thể được đặt trong các trích dẫn đơn hoặc đôi:

http://localhost/~phphol/connect.php
8

Tên biến được tiền tố với một dấu hiệu đô la. Những thứ trông giống như các biến bên trong chuỗi được trích xuất kép sẽ được mở rộng:

http://localhost/~phphol/connect.php
9

Chuỗi và biến cũng có thể được nối bằng một khoảng thời gian.

column username format a30
column logon_time format a18
set pagesize 1000 feedback off echo on

select username, to_char(logon_time, 'DD-MON-YY HH:MI:SS') logon_time
from v$session
where username is not null;

exit
0

Các biến không cần loại được khai báo:

column username format a30
column logon_time format a18
set pagesize 1000 feedback off echo on

select username, to_char(logon_time, 'DD-MON-YY HH:MI:SS') logon_time
from v$session
where username is not null;

exit
1

Mảng có thể có các chỉ mục số hoặc kết hợp:echo or print statement. Formatted output with printf() is also possible.

column username format a30
column logon_time format a18
set pagesize 1000 feedback off echo on

select username, to_char(logon_time, 'DD-MON-YY HH:MI:SS') logon_time
from v$session
where username is not null;

exit
2

Chuỗi và biến có thể được hiển thị với một câu lệnh ECHO hoặc IN. Đầu ra định dạng với printf () cũng có thể.var_dump() function is useful for debugging.

column username format a30
column logon_time format a18
set pagesize 1000 feedback off echo on

select username, to_char(logon_time, 'DD-MON-YY HH:MI:SS') logon_time
from v$session
where username is not null;

exit
3

Hàm var_dump () rất hữu ích để gỡ lỗi.$a2 assigned above, this would output:

column username format a30
column logon_time format a18
set pagesize 1000 feedback off echo on

select username, to_char(logon_time, 'DD-MON-YY HH:MI:SS') logon_time
from v$session
where username is not null;

exit
4

Với giá trị của $ A2 được chỉ định ở trên, điều này sẽ xuất ra:switch statement. The if/elseif/else statements look like:

column username format a30
column logon_time format a18
set pagesize 1000 feedback off echo on

select username, to_char(logon_time, 'DD-MON-YY HH:MI:SS') logon_time
from v$session
where username is not null;

exit
5

Luồng mã có thể được kiểm soát với các bài kiểm tra và vòng lặp. PHP cũng có một tuyên bố chuyển đổi. Các câu lệnh if/otherif/other trông giống như:

Điều này cũng cho thấy cách các khối mã được đặt trong niềng răng.

column username format a30
column logon_time format a18
set pagesize 1000 feedback off echo on

select username, to_char(logon_time, 'DD-MON-YY HH:MI:SS') logon_time
from v$session
where username is not null;

exit
6

Một vòng lặp truyền thống là:$i is incremented in each iteration. The loop stops when the test condition evaluates to false. You can also loop with while or do while constructs.

Điều này in các số 0 đến 9. Giá trị của $ I được tăng lên trong mỗi lần lặp. Vòng lặp dừng khi điều kiện kiểm tra đánh giá là sai. Bạn cũng có thể lặp lại trong khi hoặc làm trong khi xây dựng.foreach command is useful to iterate over arrays:

column username format a30
column logon_time format a18
set pagesize 1000 feedback off echo on

select username, to_char(logon_time, 'DD-MON-YY HH:MI:SS') logon_time
from v$session
where username is not null;

exit
7

Lệnh foreach rất hữu ích để lặp lại các mảng:$v to each element of the array in turn.

Điều này đặt $ V cho mỗi phần tử của mảng lần lượt.

column username format a30
column logon_time format a18
set pagesize 1000 feedback off echo on

select username, to_char(logon_time, 'DD-MON-YY HH:MI:SS') logon_time
from v$session
where username is not null;

exit
8

Một chức năng có thể được xác định:

column username format a30
column logon_time format a18
set pagesize 1000 feedback off echo on

select username, to_char(logon_time, 'DD-MON-YY HH:MI:SS') logon_time
from v$session
where username is not null;

exit
9

Các chức năng có thể có số lượng thay đổi của các đối số và có thể hoặc không thể trả về các giá trị. Chức năng này có thể được gọi bằng cách sử dụng:

Các cuộc gọi chức năng có thể xuất hiện sớm hơn định nghĩa hàm.include() or require() statement.

cd $HOME/public_html
sqlplus -l phphol/welcome @usersess.sql 
0

Files phụ có thể được bao gồm trong các tập lệnh PHP với câu lệnh bao gồm () hoặc yêu cầu ().require() will generate a fatal error if the script is not found.

A Yêu cầu () sẽ tạo ra một lỗi nghiêm trọng nếu không tìm thấy tập lệnh.

cd $HOME/public_html
sqlplus -l phphol/welcome @usersess.sql 
1

Nhận xét là một dòng đơn:

cd $HOME/public_html
sqlplus -l phphol/welcome @usersess.sql 
2

hoặc đa dòng: and ?> tags.

cd $HOME/public_html
sqlplus -l phphol/welcome @usersess.sql 
3

Các tập lệnh PHP được đặt trong các thẻ.

Khi một máy chủ web được cấu hình để chạy các tệp PHP thông qua trình thông dịch PHP, việc tải tập lệnh trong trình duyệt sẽ khiến mã PHP được thực thi và tất cả đầu ra được truyền đến trình duyệt.

cd $HOME/public_html
sqlplus -l phphol/welcome @usersess.sql 
4

Các khối mã PHP và mã HTML có thể được xen kẽ. Mã PHP cũng có thể in rõ ràng các thẻ HTML. php.ini configuration file. The location of the file is system specific. Its
location, the list of extensions loaded, and the value of all the initialization settings can be found using the phpinfo() function:

cd $HOME/public_html
sqlplus -l phphol/welcome @usersess.sql 
5

Nhiều khía cạnh của PHP được kiểm soát bởi các cài đặt trong tệp cấu hình php.ini. Vị trí của tệp là cụ thể của hệ thống. Vị trí của nó, danh sách các phần mở rộng được tải và giá trị của tất cả các cài đặt khởi tạo có thể được tìm thấy bằng cách sử dụng hàm phpinfo ():phpl.ini and restarting the Web server. Some values can also be changed within scripts by using the ini_set() function.

Các giá trị có thể được thay đổi bằng cách chỉnh sửa phpl.ini và khởi động lại máy chủ web. Một số giá trị cũng có thể được thay đổi trong các tập lệnh bằng cách sử dụng hàm ini_set ().oci functions include the following:

Một danh sách các chức năng OCI khác nhau bao gồm:

OCI_BIND_ARRAY_BY_NAME

Liên kết mảng PHP với mảng Oracle PL/SQL theo tên

OCI_BIND_BY_NAME

Liên kết biến PHP với trình giữ chỗ Oracle

OCI_CANCEL

Hủy đọc từ con trỏ

OCI_CLOSE

Đóng kết nối Oracle

OCI_COMMIT

Cam kết tuyên bố nổi bật

OCI_Connect

Thiết lập kết nối với máy chủ Oracle

OCI_DEFINE_BY_NAME

Sử dụng biến PHP cho bước xác định trong khi chọn

OCI_ERROR

Trả về lỗi cuối cùng được tìm thấy

OCI_EXECUTE

Thực thi một tuyên bố

OCI_FETCH_ALL

Tìm nạp tất cả các hàng dữ liệu kết quả vào một mảng

oci_fetch_array

Trả về hàng tiếp theo từ dữ liệu kết quả dưới dạng mảng kết hợp hoặc số hoặc cả hai

OCI_FETCH_ASSOC

Trả về hàng tiếp theo từ dữ liệu kết quả dưới dạng mảng kết hợp

OCI_Fetch_Object

Trả về hàng tiếp theo từ dữ liệu kết quả dưới dạng đối tượng

Trả về hàng tiếp theo từ dữ liệu kết quả dưới dạng mảng số

OCI_FETCH

Lấy hàng tiếp theo vào bộ đệm kết quả

OCI_FIELD_IS_NULL

Kiểm tra xem trường có phải là null không

OCI_FIELD_NAME

Trả về tên của một trường từ câu lệnh

OCI_FIELD_PRECISION

Cho biết độ chính xác của một lĩnh vực

OCI_FIELD_SCALE

Cho biết quy mô của lĩnh vực

OCI_FIELD_SIZE

Trả về kích thước của trường

OCI_FIELD_TYPE_RAW

Cho biết kiểu dữ liệu oracle thô của trường

OCI_FIELD_TYPE

Trả về kiểu dữ liệu của trường

oci_free_statement

Giải phóng tất cả các tài nguyên liên quan đến tuyên bố hoặc con trỏ

OCI_INTERNAL_DEBUG

Cho phép hoặc vô hiệu hóa đầu ra gỡ lỗi nội bộ

OCI_New_Collection

Phân bổ đối tượng bộ sưu tập mới

OCI_New_Connect

Thiết lập kết nối mới với máy chủ Oracle

OCI_NEW_CURSOR

Phân bổ và trả về một con trỏ mới (xử lý câu lệnh)

OCI_New_Descriptor

Khởi tạo một bộ mô tả tệp hoặc tệp trống mới

OCI_NUM_FIELDS

Trả về số lượng cột kết quả trong một câu lệnh

OCI_NUM_ROWS

Trả về số lượng hàng bị ảnh hưởng trong quá trình thực thi tuyên bố

OCI_PARSE

Chuẩn bị tuyên bố Oracle để thực thi

OCI_Password_change

Thay đổi mật khẩu của người dùng Oracle

OCI_PConnect

Kết nối với cơ sở dữ liệu Oracle bằng cách sử dụng kết nối liên tục

OCI_RESULT

Trả về giá trị của một trường từ một hàng được tìm nạp

OCI_Rollback

Cuộn trở lại giao dịch chưa thanh toán

OCI_SERVER_Version

Trả về phiên bản máy chủ

OCI_SET_PREFETCH

Đặt số lượng hàng được tìm trước

OCI_Statement_Type

Trả về loại câu lệnh OCI

Hướng dẫn how to connect oracle database in php using wamp - cách kết nối cơ sở dữ liệu oracle trong php bằng cách sử dụng wamp

Chúng ta có thể sử dụng Oracle với XAMPP không?

XAMPP là gói nguồn mở chứa Apache, PHP và nhiều phần mở rộng PHP '. Một trong những tiện ích mở rộng này là PHP OCI8 kết nối với cơ sở dữ liệu của Oracle. Để cài đặt XAMPP: Tải xuống "XAMPP cho Windows" và theo dõi trình hướng dẫn cài đặt.One of these extension is PHP OCI8 which connects to Oracle Database. To install XAMPP: Download "XAMPP for Windows" and follow the installer wizard.

Làm cách nào để kết nối với cơ sở dữ liệu Oracle trong thiết bị đầu cuối?

Để kết nối với cơ sở dữ liệu Oracle từ SQL*plus:..
Nếu bạn đang ở trên hệ thống Windows, hãy hiển thị dấu nhắc lệnh Windows ..
Tại dấu nhắc lệnh, nhập sqlplus và nhấn phím enter.SQL*Plus bắt đầu và nhắc bạn cho tên người dùng của bạn ..
Nhập tên người dùng của bạn và nhấn phím Enter.....
Nhập mật khẩu của bạn và nhấn phím Enter ..

Làm cách nào để kết nối với cơ sở dữ liệu Oracle hiện có?

Để kết nối với cơ sở dữ liệu Oracle từ SQL*Plus: Nếu bạn đang ở trên hệ thống Windows, hãy hiển thị dấu nhắc lệnh Windows.Tại dấu nhắc lệnh, nhập sqlplus và sau đó nhấn phím enter.At the command prompt, type sqlplus and then press the key Enter. At the user name prompt, type your user name and then press the key Enter.

Chúng ta có thể kết nối cơ sở dữ liệu Oracle với PHP không?

Kết nối với Oracle từ PHP bằng trình điều khiển ODBC cho Oracle PHP là một trong những ngôn ngữ lập trình phổ biến nhất để phát triển trang web.Trình điều khiển ODBC là các đầu nối tạo cơ sở dữ liệu phát triển PHP - phần mềm của bạn được viết trong PHP sẽ hoạt động với bất kỳ hệ thống quản lý cơ sở dữ liệu của nhà cung cấp nào. PHP is one of the most popular programming languages for website development. ODBC drivers are connectors that make PHP development database agnostic — your software written in PHP will function with any vendor's database management system.