2013-08-14 81 views
10

Tôi đang cố gắng phát triển một ứng dụng web có thể kết nối với nhiều cơ sở dữ liệu khác nhau nhất có thể trên PHP. PDO (http://www.php.net/manual/en/book.pdo.php) có vẻ là giao diện phù hợp với nó nhưng tôi gặp sự cố khi cài đặt tất cả các phạm vi cần thiết cho tất cả các trình điều khiển cơ sở dữ liệu PDO khác nhau mà tôi cần.Cài đặt PHP PDO trên windows (xampp)

Xin lưu ý rằng tôi sử dụng xampp trên máy tính Windows 7. Phiên bản PHP 5.3.8. Trình điều khiển PDO đã bật mysql, odbc, sqlite, sqlite2, sqlsrv.

Tôi đã kết nối thành công với những điều sau:

.210

Tôi không có may mắn cài đặt hoặc kết nối với:

  • (SOLVED XEM DƯỚI ĐÂY CẬP NHẬT) Sybase (Tôi cố gắng để sử dụng và cài đặt PDO_DBLIB [MS SQL Server (PDO)] nhưng không có may mắn)
  • (ĐÃ CÀI ĐẶT XEM CẬP NHẬT DƯỚI ĐÂY) Oracle (Tôi đã cố gắng cho phép phần mở rộng = php_pdo_oci.dll trong php.ini bằng dll đã được cài đặt với xampp sau khi khởi động lại Apache máy chủ không khởi động được. Đã cố gắng sử dụng PDO_OCI [Oracle (PDO)])

Tôi biết tôi có thể làm việc xung quanh những 2 với việc sử dụng các trình điều khiển cơ sở dữ liệu cụ thể nhưng tôi thực sự rất thích sử dụng PDO cho tất cả mọi thứ mà tôi cần.

Có ai biết làm thế nào để cài đặt và kích hoạt PDO_DBLIBPDO_OCI trình điều khiển hoặc một cửa sổ máy, hoặc bất kỳ cách nào khác để kết nối với cơ sở dữ liệu Sybase và Oracle sử dụng PDO?


CẬP NHẬT

Chỉ cần thành công kết nối với oracle với PDO_OCI. Những gì bạn cần làm là như sau:

Tải về và cài đặt Oracle tức thì khách hàng thích hợp trên máy cửa sổ của bạn cho dụ instantclient_12_1 và thêm đường đi của nó vào PATH trong HỆ THỐNG biến môi trường. Lưu ý Oracle chỉ hỗ trợ 2 phiên bản để chọn phiên bản ứng dụng khách của bạn đúng cách. Làm điều đó và sau đó khởi động lại Apache của bạn.Lưu ý rằng các chuỗi kết nối là rất khác so với ở đây là một mẫu của những gì tôi được sử dụng:

$tns = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ".$myServer.")(PORT = 1521)))(CONNECT_DATA=(SID=".$myDB.")))"; 
$connStr = "oci:dbname=".$tns;  
$conn = new PDO($connStr,$myUser,$myPass); 

CẬP NHẬT

Chỉ cần kết nối với Sybase cũng với PDO_ODBC. Những gì bạn cần là:

Phải có Trình điều khiển ODBC Sybase ASE đi kèm với SDK. Tìm thấy bên dưới các chuỗi kết nối được sử dụng:

$connStr = "odbc:Driver={Adaptive Server Enterprise};server=".$myServer.";port=".$myPort.";db=".$myDB; 
$conn = new PDO($connStr,$myUser,$myPass); 
+0

Tôi có thể hỏi * tại sao * bạn có muốn kết nối với nhiều cơ sở dữ liệu khác nhau nhất có thể không? –

+0

chắc chắn, đang cố thu thập thông tin từ các hệ thống khác nhau để hiển thị ở một nơi. giống như một cổng để theo dõi các bảng lỗi và một số thống kê. – Constantinos

+0

Cập nhật bài đăng của tôi với giải pháp kết nối với oracle và PDO_OCI. Nếu ai cũng có giải pháp cho Sybase, vui lòng cho chúng tôi biết – Constantinos

Trả lời

3

Vì vậy, cuối cùng tôi quản lý để kết nối tới bốn cơ sở dữ liệu dưới đây là cách tôi quản lý:


MySQL sử dụng PDO_MYSQL mở rộng dường như được cài đặt trên xampp theo mặc định không phải làm nhiều việc. Đây là mã tôi đã sử dụng cho kết nối:

$connStr = "mysql:host=".$myServer.";dbname=".$myDB; 
$conn = new PDO($connStr,$myUser,$myPass); 

Microsoft SQL Server sử dụng PDO_SQLSRV theo các hướng dẫn trên http://craigballinger.com/blog/2011/08/usin-php-5-3-with-mssql-pdo-on-windows/. Đây là mã tôi đã sử dụng:

$connStr = "sqlsrv:Server=".$myServer.";Database=".$myDB; 
$conn = new PDO($connStr,$myUser,$myPass); 

Oracle với PDO_OCI. Tải xuống và cài đặt Oracle Instant Client thích hợp trên máy tính cửa sổ của bạn, ví dụ instantclient_12_1 và thêm đường dẫn của nó vào PATH trong các biến môi trường SYSTEM. Lưu ý Oracle chỉ hỗ trợ 2 phiên bản để chọn phiên bản máy khách của bạn đúng cách. Làm điều đó và sau đó khởi động lại Apache của bạn. Đây là mã tôi đã sử dụng:

$tns = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ".$myServer.")(PORT = 1521)))(CONNECT_DATA=(SID=".$myDB.")))"; 
$connStr = "oci:dbname=".$tns;  
$conn = new PDO($connStr,$myUser,$myPass); 

Sybase với PDO_ODBC Phải có điều khiển Sybase ASE ODBC mà đi kèm với SDK. Đây là mã tôi đã sử dụng:

$connStr = "odbc:Driver={Adaptive Server Enterprise};server=".$myServer.";port=".$myPort.";db=".$myDB; 
$conn = new PDO($connStr,$myUser,$myPass); 
Các vấn đề liên quan