CLI перестала работать ошибка после сохранения ODBC PDO

Настройка некоторых тестов в PHPUnit / Sublime, и я сталкиваюсь с проблемой с постоянным соединением PDO.

Когда я добавлю array(PDO::ATTR_PERSISTENT => true) к соединению, тесты запускаются ОК, а затем в конце я получаю всплывающее окно с сообщением, что CLI перестал работать.

Если я закомментирую постоянную директиву, тесты пройдут нормально; но они тратят много времени на установление множества соединений с настройкой, разборкой и множеством объектов БД.

class DB_PDO {

protected $dsn = 'odbc:DRIVER={iSeries Access ODBC DRIVER} *** ';
protected $user = '***';
protected $pass = '***';

public function __construct($dsn='',$user='',$pass='') {
/* Handle defaults */
if ("" == $dsn)   $dsn   = $this->dsn;
if ("" == $user)  $user  = $this->user;
if ("" == $pass)  $pass  = $this->pass;

try {

if(!property_exists($this,'pdo')) {
// runs fast, but generates cli error
$this->pdo = new PDO($dsn,$user,$pass, array(PDO::ATTR_PERSISTENT => true));

// runs slowly, but no error
//$this->pdo = new PDO($dsn,$user,$pass);

// didn't tell me anything
//$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}

} catch(PDOException $e) {
print "Error! " . $e->getMessage() . "<br>";
die;
}

// snip...

}

Если это поможет,

$ php -v
PHP 7.1.3 (cli) (built: Mar 14 2017 23:33:35) ( NTS MSVC14 (Visual C++ 2015) x64
)
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Xdebug v2.5.1, Copyright (c) 2002-2017, by Derick Rethans

База данных, однако, находится на 5,6


Я не уверен, где искать проблему, так как моя единственная ошибка — всплывающее окно в Windows. Ничто не отражается в командной строке.


Запрошенная информация:

  • Windows 8.1 Корпоративная
  • Event Viewer показывает, что событие не генерируется (системный журнал)
  • Не XAMP. IIS сервер на другой коробке. Я тестирую скрипты с локального компьютера, но скрипты находятся в другом окне (с подключенным диском).
  • Просмотр событий показывает ошибку в журнале приложения (локально):

ошибка:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Application Error" />
<EventID Qualifiers="0">1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2018-04-03T21:00:11.000000000Z" />
<EventRecordID>60403</EventRecordID>
<Channel>Application</Channel>
<Computer>--redacted--.LOCAL</Computer>
<Security />
</System>
<EventData>
<Data>php.exe</Data>
<Data>7.1.3.0</Data>
<Data>58c87e19</Data>
<Data>ntdll.dll</Data>
<Data>6.3.9600.18946</Data>
<Data>5a9a3a38</Data>
<Data>c0000005</Data>
<Data>000000000003571c</Data>
<Data>1828</Data>
<Data>01d3cb8ec02fd590</Data>
<Data>C:\php\php.exe</Data>
<Data>C:\Windows\SYSTEM32\ntdll.dll</Data>
<Data>ff51f074-3781-11e8-8288-00155d14e007</Data>
<Data />
<Data />
</EventData>
</Event>

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]