Я использую predis, и все было отлично, пока я не начал получать эту ошибку:
ERR Protocol error: invalid bulk length
Я не уверен, почему я получаю это. Ошибка в этом файле: Predis/Network/StreamConnection.php в этом методе:
public function writeCommand(ICommand $command) {
$commandId = $command->getId();
$arguments = $command->getArguments();
$cmdlen = strlen($commandId);
$reqlen = count($arguments) + 1;
$buffer = "*{$reqlen}\r\n\${$cmdlen}\r\n{$commandId}\r\n";
for ($i = 0; $i < $reqlen - 1; $i++) {
$argument = $arguments[$i];
$arglen = strlen($argument);
$buffer .= "\${$arglen}\r\n{$argument}\r\n";
}
$this->writeBytes($buffer);
}
Он терпит неудачу, когда пытается выполнить strlen() для массива.
Вот код, из-за которого это не работает:
$ids = array(1, 2, 3);
$predis = new Predis\Client();
$predis->set('testerKey', $ids);
Мне не разрешено устанавливать массив? Конечно, я могу установить массив. Единственное, что я изменил, это то, что я сделал свои файлы UTF-8, так что, может быть, это что-то напортачило?
Любая помощь будет оценена по достоинству.