Everything_is_bad, да, нам всем уже очень смешно.
Поэтому потрудитесь объяснить, что мешает вам добавить третье условие.
И в целом объяснить суть своих проблем.
Потому что ответ на вопрос, как удалить по трем параметрам как бы очевиден: удалять надо по трем параметрам, а не по двум
В конце концов, залезьте в это Class Client, добавьте там что-нибудь типа
var_dump(array_keys($connectParams), isset($connectParams['username']));
но не сидите истуканом. сама себя эта опечатка не исправит
вам надо пройти через проверку if (!isset($connectParams['username'])) {
а не рассуждать про библиотеки и менять шило на мыло.
При чем здесь менять апач?
Вы не понимаете что ли, что написано в сообщении об ошибке?
И не смотрели, откуда она берется (то есть в 71 строку в D:\dev\vendor\smi2\phpclickhouse\src\Client.php)?
Это всё ненужные бессмысленные телодвижения. Учите язык.
В РНР динамическая типизация, и "массив, который содержит все столбцы из следующей строки результирующего набора" вполне служит заменой true
К тому же вы и сами наверняка постоянно пишете
while ($row = $stmt->fetch())
но при этом тот факт, что "массив, который содержит все столбцы", используется в булевом контексте вас не смущает :)
Проверка на успешность запроса также является бессмысленной.
Причем ваш код является неправильным дважды
Во-первых, в общем случае наличие положительного результата rowCount() не является показателем успешности запроса. Там может быть и ноль, но запрос все равно будет успешным. Не INSERT но любой другой может. Эту функцию нельзя использовать для проверки успешности.
Во-вторых, сама по себе проверка на успешность запроса является бессмысленной. Если РНР не выдал ошибку, то запрос по определению был успешным. И дополнительно это проверять просто глупо.
Другое дело что затрачиваемые усилия не стоят результата. Обычный пользователь все равно не поймет, где у него перезагрузка, а где подгрузка, если на странице вся картинка меняется
Реализация, которую он сам себе придумал, с "остановить, а потом продолжить" - это действительно анекдот.
Но обычный аякс запрос вполне решает его проблему.
Поэтому потрудитесь объяснить, что мешает вам добавить третье условие.
И в целом объяснить суть своих проблем.
Потому что ответ на вопрос, как удалить по трем параметрам как бы очевиден: удалять надо по трем параметрам, а не по двум