Мы используем PHP 5.3.2, Ubuntu, MySQL 5.1.41, CodeIgniter 2.0.0 с простым драйвером PDO.
Проблема в том, что мы отправляем длинную строку (размером около 11, 12 кбайт) взапрос, ни PHP, ни MySQL не возвращает никаких ошибок или ответов.Нет синтаксических ошибок, нет предупреждений, нет ошибок HTTP, нет ничего.PHP просто продолжает «в ожидании».
Если строка данных короче на несколько килобайт, запрос выполняется, и данные корректно вставляются в базу данных.
Мы считаем, что MySQL даже не получит отправленный нами запрос, если его размер превышает ~ 11 Кбайт.
Сбой PDO::prepare
или PDOStatement::execute
.
Запрос:
select simpleupdatestoredprocedure(15, 'loooong string');
Вызванная функция:
function _execute($sql)
{
$q = $this->conn->prepare($sql);
$q->execute();
return $q;
}
Где $this->conn
является основным объектом PDO, а $q
является PDOStatement
объектом.(Мы не используем какие-либо специфические элементы CodeIgniter в этой части кода.)
Есть ли какие-то скрытые настройки, ограничивающие длину данных или запросов, которые могут быть переданы?При необходимости мы найдем точное количество байтов при возникновении этой проблемы.