Tôi đang cố gắng để kết nối với một cơ sở dữ liệu odbc qua PDO
lớp php của:PDO trở về lỗi "không thể tìm thấy tài xế" với một DSN làm việc được biết đến
$dsn = 'odbc:CS_HDZipCodes32bit';
$username = 'demo';
$password = 'skdemo!';
$connection = new PDO($dsn, $username, $password);
die(var_dump($connection));
nhưng khi tôi làm, tôi nhận được lỗi:
Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:\inetpub\wwwroot\pdoClass.php:7 Stack trace: #0 C:\inetpub\wwwroot\pdoClass.php(7): PDO->__construct('odbc:CS_HDZipCo...', 'demo', 'skdemo!') #1 {main} thrown in C:\inetpub\wwwroot\pdoClass.php on line 7
Giá trị $dsn
là tên của DSN mà tôi đã tạo trong Trình quản lý ODBC của mình.
Tôi biết DSN đặc biệt này hoạt động bởi vì tôi đã có thể xây dựng một tệp trình diễn và kết nối thành công qua odbc_connect
:
$connection = odbc_connect("CS_HDZipCodes32bit", 'demo', 'skdemo!');
if(!$connection){
die('connection failed');
}
$statement = "SELECT * FROM ZipCodes";
$result = odbc_exec($connection, $statement);
// Outputs the zips as expected
var_dump(odbc_result_all($result));
Tôi đã đào qua các tài liệu PDO-ODBC cũng như khác tài nguyên trực tuyến, nhưng tôi không thể tìm ra lý do tại sao PHP không thể tìm thấy trình điều khiển khi thử từ PDO.
Bất kỳ ý tưởng nào?
Cập nhật
tôi bật mở trang phpinfo của tôi để đảm bảo người lái xe odbc được cài đặt cho mỗi bình luận Marc B:
Dường như trình điều khiển được cài đặt trừ khi đây là một trình điều khiển khác nhau .
Cập nhật Một
On kiểm tra hơn nữa phpini tôi mỗi bình luận thêm Marc B, có vẻ như tôi không có cài đặt trình điều khiển cụ thể POD ODBC:
Vì vậy, ở đây, nếu Tôi đã có trình điều khiển ODBC cho pdo cài đặt, odbc
sẽ ở cuối danh sách, đúng không?
bạn đã thử odbc_connect trên dsn "xấu" của bạn? –
Có, khối mã ở dưới cùng là tôi sử dụng cùng một dsn từ trên cùng với odbc_connect. –
ok, sau đó bạn đã kiểm tra xem trình điều khiển pdo odbc đã được cài đặt chưa? pdo có trình điều khiển riêng của nó, và không chỉ là "bọc" các hàm 'odbc _ *()'. –