Задать вопрос
@ComPUCKter
Web-разработчик

Как сделать json в mysql пустым, чтобы rowCount возвращал 0?

Мне необходимо знать когда в json таблицы mysql нет никаких значений, поэтому я проверяю это через rowCount. Но после того, как в нем побывало какое-то значение и я его удаляю оттуда, там остается [] и теперь rowCount никогда не равен нулю. Что для этого нужно делать? Или может я совсем неправильно обращаюсь с json в mysql?

Скриншот таблицы в phpMyAdmin со значением []:
607b4141ab8f4257507843.png

Мой код, которым я пользуюсь для обращения с json в mysql
//Извлекаем json со списком подписчиков
      $query = $db->prepare(
         "SELECT `followers` FROM `users` WHERE `id`='$authorsID'"
      );
      $query->execute();
      $followers = null;

      //Если в строка пустая
      if ($query->rowCount() > 0) {
         $followers = (array) json_decode($query->fetch()[0]);

         //Если нажимающий кнопку не подписан на автора
         if (!in_array($followersID, $followers)) {
            $followers[$followersID] = $followersID;
            echo 'subscribed';

            //Если подписан
         } else {
            unset($followers[$followersID]);
            echo 'unsubscribed';
         }
         //Если json пустой(нет подписчиков)
      } else {
         $followers = [$followersID => $followersID];
         echo 'subscribed';
      }
  • Вопрос задан
  • 147 просмотров
Подписаться 2 Средний 6 комментариев
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
$query = $db->prepare("SELECT * FROM `followers` WHERE `author_id`=? AND follower_id=?");
$query->execute([$authorsID,$followersID]);


и о чудо! rowCount() внезапно работает!!!!

if ($query->rowCount() > 0) {
      echo 'subscribed';
} else {
      echo 'unsubscribed';
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
yupiter7575
@yupiter7575
Python программист
Я как понял вам надо проверить на пустоту массив? Хороший метод это isEmpty. Есть еще другие методы
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы