@MrCheatEugene
Человек. Учусь кодить.

Почему mysqli_query всегда возвращает false?

Есть функция:
function balance($card,$cvc,$name,$link){
try{
if(empty($card) OR empty($cvc) or empty($name) or empty($link)){
	return false;
}else{
			include("config.php");//конфиг, содержащий инфу для подключения
 $qq = "SELECT `balance` FROM `cards` WHERE `card` = '$card' AND `cvc` = '$cvc' AND `name` = '$name'";//формируем запрос
mysqli_select_db($link,$dbname);//выбираем БД
$res = mysqli_query($link,$qq);//делаем запрос
$res = mysqli_fetch_assoc($res);//преобразование результата в массив
$link->query("INSERT INTO `log`(`operaion`, `SERVER`, `result`) VALUES ('balance','".implode(",",$_SERVER)."','".implode(",", ($res))."')");// лог в базу данных
return $res;//отдаём результат как массив
}
}catch(Exception $e){
	return false;//если произошла ошибка - возвращаем ничего
}

}

Но, она возвращает false.
На Vertrigoserv работало идеально.
mysqli_error возвращает ничего.
Перетыкал всё что только можно,но результат не изменился.
Сервер - PHP 5.6, Apache, Ubuntu 18.04
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 2
Fockker
@Fockker Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Я уже отвечал на этот вопрос

Но самое конечно ужасное - это что этим людям доверяют работу с картами.
При том что все данные карт утекут в тот же момент когда этот "сервис" выйдет в онлайн
Ответ написан
@MrCheatEugene Автор вопроса
Человек. Учусь кодить.
Вопрос закрыт.
Извиняюсь за неккоректное название вопроса, причиной оказался не mysqli, а catch.
Причина ошибки: Массив $_SERVER содержит информацию о SSL(Let's Encrypt), а так как я запутался в примерах с php.net и забил на экранирование строк(конкретнее, не понял зачем нужен sprintf, и вместо того чтобы посмотреть что он делает СТРОКОЙ ВЫШЕ я просто забил), MySQL
видел такое:
INSERT `log` ... `server` = '<b>Let'sEncrypt</b>'
Фикс подсказали в другом вопросе: https://qna.habr.com/q/1060794
а именно Сергей delphinpro и обьяснил ошибку Hanneman
spoiler
И да, Fockker, как видишь - ты сам видимо про базы данных знаешь мало чего, плюс обвиняешь всех вокруг, когда твоё решение не помогло одному человеку.
spoiler
И ещё, ДА, КОГДА Я ГОВОРЮ ПЕРЕРЫЛ ВЕСЬ ИНТЕРНЕТ - ЗНАЧИТ, ЧТО Я ПРОЯНДЕКСИЛ И ПРОГУГЛИЛ ВСЁ. НА АНГЛИЙСКОМ И НА РУССКОМ.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы