Я использую в своем развитии PHP evseevnn / PHP-Cassandra-бинарная. В последнее время я всегда получал исключение:
<h4>A PHP Error was encountered</h4>
<p>Severity: User Notice</p>
<p>Message: Reading while at end of stream</p>
<p>Filename: Response/Rows.php</p>
<p>Line Number: 65</p>
Я видел файл архива Ответ / Rows.php на линии 65.
Здесь есть:
public function current() {
if (!isset($this->rows[$this->current])) {
throw new \OutOfRangeException('Invalid index');
}
$row = $this->rows[$this->current];
for ($i = 0; $i < $this->columnCount; ++$i) {
try {
$data = new DataStream($this->rows[$this->current][$this->columns[$i]['name']]);
$row[$this->columns[$i]['name']] = $data->readByType($this->columns[$i]['type']);
} catch (\Exception $e) {
trigger_error($e->getMessage()); // Line 65
$row[$this->columns[$i]['name']] = null;
}
}
return $row;
}
Не могли бы вы помочь мне решить эту ошибку и понять, почему она произошла? Может быть, написать вопрос на Github для разработчика?
https://github.com/evseevnn/php-cassandra-binary
Существует проблема со значениями NULL и столбцами карт. https://github.com/evseevnn/php-cassandra-binary/issues/27
Я использовал ветку разработки https://github.com/eyeem/php-cassandra-binary/tree/develop и заменил DataStream.php на https://github.com/eyeem/php-cassandra-binary/blob/master/src/Protocol/Response/DataStream.php
После этого все работало нормально.
похоже, что $ this-> columnCount не установлен правильно при вызове вставленной функции.