@limberg

Проверка на наличие пользователя в базе данных. В чем ошибка?

Необходимо узнать, есть ли пользователь в бд. Если есть, то нужно обновить некоторые данные. Если пользователя в бд нет, то, соответственно, добавить его туда.
У меня же новые юзеры в бд не заносятся, и данные у старых не обновляются.
Вот имеющийся код:
if ($result) {
        $check = mysqli_fetch_assoc(mysqli_query($connection, "SELECT COUNT(*) as count FROM `users` WHERE vk_link='{$userInfo['screen_name']}'"));
        if($check != null) $sql = mysqli_query($connection, "UPDATE `users` SET '{$userInfo['first_name']}', '{$userInfo['last_name']}', '{$userInfo['photo_big']}'");
        else {
            $sql = mysqli_query($connection, "INSERT INTO `users` (`id`, `vk_link`, `first_name`, `last_name`, `avatar`, `joined`, `group_user`) VALUES (NULL, '{$userInfo['screen_name']}', '{$userInfo['first_name']}', '{$userInfo['last_name']}', '{$userInfo['photo_big']}', CURRENT_TIMESTAMP, NULL)");
        }
    }


В чем ошибка?
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
@galaxy
Ошибки, блин, проверяйте (mysqli_error).

$sql = mysqli_query($connection, "UPDATE `users` SET '{$userInfo['first_name']}', '{$userInfo['last_name']}', '{$userInfo['photo_big']}'");

Почитайте на досуге что-нибудь про SQL. Синтаксис UPDATE такой:
UPDATE
   col1 = value1,
   col2 = value2,
   ...
 WHERE
   colN = valueN
   ...


"INSERT INTO `users` (`id`, `vk_link`, `first_name`, `last_name`, `avatar`, `joined`, `group_user`) VALUES (NULL, '{$userInfo['screen_name']}', '{$userInfo['first_name']}', '{$userInfo['last_name']}', '{$userInfo['photo_big']}', CURRENT_TIMESTAMP, NULL)")

id, небось, AUTOINCREMENT? Не надо ее в таком случае включать в INSERT

... WHERE vk_link='{$userInfo['screen_name']}'
По тонкому льду ходите
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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