Я могу подключиться к базе данных MySQL с помощью ODBC / SSL ( см. Мой пост ) с помощью этого сценария:
ini_set ('error_reporting', E_ALL);
ini_set ('display_errors', '1');
error_reporting (E_ALL|E_STRICT);
$user = "odbcmmm";
$pass = "999999999";
$connection = "Driver={mysql537};Server=99.99.199.199;Database=db_name;UID=odbc_db_name;PWD=password;sslca=/etc/mysql/ssl/c1.pem;sslkey=/etc/mysql/ssl/ck.pem;sslcapath=/etc/mysql/ssl/;sslcert=/etc/mysql/ssl/cc.pem";
$con = odbc_connect($connection, $user, $pass);
$sql="SELECT Id from stk_item";
$rs=odbc_exec($con,$sql);
if (!$rs) {
exit("Error in SQL");
}
Однако, когда я пытаюсь создать объект PDO, используя сценарийниже я получаю сообщение об ошибке:
SQLSTATE [IM002] SQLDriverConnect: 0 [unixODBC] [Driver Manager] Имя источника данных не найдено, и драйвер по умолчанию не указан **
<?php
ini_set ('error_reporting', E_ALL);
ini_set ('display_errors', '1');
$pass = "pass";
try {
$connection = new PDO("odbc:mysql537;Server=99.99.199.199;Database=db1;UID=user1;PWD=pwd1;sslca=/etc/mysql/ssl/c1.pem;sslkey=/etc/mysql/ssl/ck.pem;sslcapath=/etc/mysql/ssl/;sslcert=/etc/mysql/ssl/cc.pem");
error_reporting (E_ALL|E_STRICT);
} catch (PDOException $exception) {
echo $exception->getMessage();
exit;
}
Когда я изменяю код, как показано ниже, ошибка:
неверное имя источника данных
<?php
ini_set ('error_reporting', E_ALL);
ini_set ('display_errors', '1');
error_reporting (E_ALL|E_STRICT);
$user = "user";
$pass = "pass";
try {
$connection = new PDO("Driver={mysql537};Server=99.99.199.199;Database=db1;UID=user1;PWD=pwd1;sslca=/etc/mysql/ssl/c1.pem;sslkey=/etc/mysql/ssl/ck.pem;sslcapath=/etc/mysql/ssl/;sslcert=/etc/mysql/ssl/cc.pem");
} catch (PDOException $exception) {
echo $exception->getMessage();
exit;
}
Я знаю, что драйверы PDO ODBC устанавливаются через phpinfo, поэтому я должен где-то испортить синтаксис соединения PDO ODBC .Любая помощь, чтобы определить мою ошибку, высоко ценится.Благодарю.