Я использую расширение PHP pdo_dblib для доступа к MS SQL SERVER.Я использовал это соединение:
$pdosql = new PDO ("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw");
Я получаю данные из таблицы:
$sql = 'SELECT cust_id FROM customers ORDER BY cust_id';
$rez = $pdosql->query($sql);
while($arr = $rez->fetch(PDO::FETCH_NUM)){
$sql1 = 'SELECT employee_name FROM employes ORDER BY emplyee_name';
$rez1 = $pdosql->prepare($sql1);
$rez1->bindValue(':id_cust',$arr[0],PDO::PARAM_INT);
$rez1->execute();
$arr1 = $rez1->fetch(PDO::FETCH_NUM);
echo $arr1[0];
}
Вместо того, чтобы показывать имя первого сотрудника для всех 20 клиентов, запросите данные возврата только для первого клиента.Я нашел решение открыть новый PDO до while
:
$pdosql = new PDO ("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw");
И все работает отлично.Есть ли другое решение?
Потому что, если у меня while
в while
, время для извлечения данных увеличивается.
Если я использовал этот код в базе данных MySQL (при правильном подключении), все отлично работает.