Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Không thể tải thư viện động 'C:\ xampp \ php \ ext \ php_oci8.dll' -% 1 không phải là ứng dụng Win32 hợp lệ

Lỗi của bạn cho thấy kiểu không khớp được tạo sẵn.

Giải quyết bằng cách làm theo các bước sau:

Đảm bảo bạn tải xuống và cài đặt oracle Instantclient tại: http://www.oracle.com/technetwork/topics/winsoft -085727.html , nhưng lưu ý:

  1. Ghi lại Oracle của bạn phiên bản cơ sở dữ liệu; sử dụng Phiên bản 12.1.x cho cơ sở dữ liệu Oracle 12c Phiên bản 11.1.x trong 11g phát hành.
  2. Trong cả hai trường hợp, hãy đảm bảo bạn tải xuống Basic Lite phiên bản của Oracle Instantclient.

Sau đó, hãy thêm vị trí của Oracle ngay lập tức vào Đường dẫn biến hệ thống của bạn trong Biến môi trường của bạn. Đảm bảo như nhau rằng bạn có cả PHP của xampp ext của nó có sẵn và đặt ở đó (nếu không, hãy thêm chúng).

Sau đó, tiến hành thêm một biến Hệ thống mới với TNS_ADMIN dưới dạng tên biến vị trí tới Oracle Instantclient dưới dạng giá trị biến .

Ngoài ra, hãy xác định biến Người dùng của bạn PATH có cùng vị trí đối với Oracle Instantclient dưới dạng giá trị .

Sau giai đoạn này, hãy khởi động lại máy tính của bạn để phổ biến đầy đủ các biến môi trường mới được xác định.

Sau khi bật, bạn có thể mở Windows Command Prompt của mình và chạy where oci * để đảm bảo rằng bạn đã xác định rõ các biến môi trường của mình; phản hồi sẽ giống như sau:

C:\Users\flex>where oci*

C:\oraclexe\app\oracle\product\11.2.0\server\bin\oci.dll
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ocijdbc11.dll
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ocijdbc11.sym
C:\oraclexe\app\oracle\product\11.2.0\server\bin\ociw32.dll
C:\instantclient_11_2\oci.dll
C:\instantclient_11_2\oci.sym
C:\instantclient_11_2\ocijdbc11.dll
C:\instantclient_11_2\ocijdbc11.sym
C:\instantclient_11_2\ociw32.dll
C:\instantclient_11_2\ociw32.sym

Nếu không, chắc hẳn bạn đã bỏ lỡ điều gì đó và cần phải xem lại quy trình, đảm bảo hoàn thành nó một cách hiệu quả.

Bây giờ, bạn có thể tiếp tục với tệp php.ini của mình (các biến môi trường được cung cấp được xác định rõ ràng) và bật oci của bạn các phần mở rộng (php_oci8.dll và php_oci8_11g.dll) bằng cách bỏ ghi chú chúng; bạn có thể đạt được điều đó bằng cách loại bỏ cột bán phần (; ) trước các phần mở rộng đã nói.

Hãy nhớ lưu tệp php.ini của bạn, sau đó, khởi động lại hoặc khởi động apache của bạn nếu nó chưa chạy.

Để kiểm tra cấu hình PHP oci8 của bạn đã được bật chưa, bạn có thể quay lại Dấu nhắc lệnh Windows và chạy: php --ri oci8 ; câu trả lời phải tương tự như câu trả lời bên dưới:

C:\Users\flex>php --ri oci8

OCI8 Support => enabled
OCI8 DTrace Support => disabled
OCI8 Version => 2.1.1
Revision => $Id: 86f22a208f89dcd5b305e82929a7429683968b11 $
Oracle Run-time Client Library Version => 11.2.0.4.0
Oracle Compile-time Instant Client Version => 10.2

Directive => Local Value => Master Value
oci8.max_persistent => -1 => -1
oci8.persistent_timeout => -1 => -1
oci8.ping_interval => 60 => 60
oci8.privileged_connect => Off => Off
oci8.statement_cache_size => 20 => 20
oci8.default_prefetch => 100 => 100
oci8.old_oci_close_semantics => Off => Off
oci8.events => Off => Off

Statistics =>
Active Persistent Connections => 0
Active Connections => 0

Ngoài ra, bạn có thể tạo một tệp PHP với <?php phpinfo(); ?> dưới dạng nội dung, sau đó mở nó trong trình duyệt của bạn và tìm kiếm các lần xuất hiện oci8; nó cũng sẽ hiển thị ở đó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kích hoạt để thực thi mối quan hệ M-M

  2. Hành vi kỳ lạ của tham gia bên ngoài đầy đủ trong Oracle - làm thế nào nó có thể được giải thích?

  3. ORA-01722:số không hợp lệ trên Entity Framework

  4. Oracle PL / SQL - Cách thoát dấu hai chấm (:), bị hiểu sai cho biến liên kết

  5. Nhận đầu ra trong tệp phẳng bằng oracle trên UNIX