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:
- MySQL sử dụng PDO_MYSQL [MySQL (PDO)] (mở rộng dường như được cài đặt trên xampp theo mặc định)
- Microsoft SQL Server sử dụng PDO_SQLSRV [MS SQL Server (PDO)] (theo các công cụ trên http://craigballinger.com/blog/2011/08/usin-php-5-3-with-mssql-pdo-on-windows/)
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_DBLIB và PDO_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);
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? –
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
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