Мне нужен образ докера, который может подключаться к внешней базе данных MSSQL при выполнении скрипта PHP. Я создал его, но смог подключиться к БД только через интерфейс командной строки tsql. Я думаю, что он использует Freetds. Но когда я попытался использовать php-скрипт, у меня возникла ошибка, говорящая, что php не может найти библиотеку PDO... Может ли кто-нибудь помочь мне узнать, что я пропустил?
Вот изображение, которое я использовал:
FROM php:7.4-cli
RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y \
unixodbc unixodbc-dev freetds-dev freetds-bin tdsodbc
ADD freetds.conf /etc/freetds/freetds.conf
ADD locales.conf /etc/freetds/locales.conf
CMD ["/bin/bash"]
и PHP-скрипт выглядят так: <?php
try {
$conn = new PDO("dblib:host={$sql_host};dbname={$sql_dbnm}", "$sql_user", "$sql_pswd");
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
} catch (Exception $e) {
var_dump($e);
die(print_r($e->getMessage()));
}
$tsql = "SELECT field FROM table";
$getResults = $conn->prepare($tsql);
$getResults->execute();
$results = $getResults->fetchAll(PDO::FETCH_BOTH);
foreach($results as $row){
echo "{$row['field']}\n";
}
Спасибо