Я хочу знать хороший синтаксис для MySQL pdo JSON

0

Я не нашел хороший синтаксис для обновления моей таблицы на mysql с помощью json_set.

Не могли бы вы мне помочь? Я хочу обновить и узнать хороший синтаксис для этого запроса.

public function mkjson()
{
    $friends = '"pachou", "eric", "francis"';
    $tagfriendsjson = json_encode($friends);

    try
    {
        include('connect.ini');
    }
    catch (Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }

    $ver = 'SELECT * FROM tagusers WHERE tag_users_id="'.$_SESSION['tagusersid'].'"';
    $ask = $bdd->query($ver);
    $ans = $ask->fetch();

    if (empty($ans['tag_friends']))
    {
        $req = $bdd->prepare('UPDATE tagusers SET = {"1": "pachou", "2": "eric", "3":  "francis", "4": "Henry"} WHERE tag_users_id="'.$_SESSION['tagusersid'].'" ');
        $req->execute();
    }
    else
    {

    }
    return true;
}

: Uncaught PDOException: SQLSTATE [42000]: Синтаксическая ошибка или нарушение доступа: 1064 У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '= {"4": "Henry"} WHERE tag_users_id = "2"' в строке 1 в /var/www/tagmeyou.com/php/class.Friendlist.php: 34 Трассировка стека: # 0/var/www/tagmeyou.com/php/class.Friendlist.php(34): PDOStatement-> выполнить() # 1/var/www/tagmeyou.com/fr/vues/body/inputtag.php(23): Friendlist-> mkjson() # 2/var/www/tagmeyou.com/fr/vues/body/bodytagscreen.php(10): include ('/var/www/tagmey... ') # 3/var/www/tagmeyou.com/fr/vues/tagscreen.php(34): include ('/var/www/tagmey... ') # 4 {main} throw в

  • 0
    Я действительно рекомендую не использовать JSON в качестве значения поля, это так грязно: S
Теги:
pdo

1 ответ

0

В этом запросе есть две ошибки:

UPDATE tagusers SET = {"1": "pachou", "2": "eric", "3":  "francis", "4": "Henry"} WHERE tag_users_id="'.$_SESSION['tagusersid'].'"

Во-первых, имя столбца не задано (между SET и =). Во-вторых, JSON должен быть в одинарных кавычках. Попробуйте изменить эту строку на

    $req = $bdd->prepare('UPDATE tagusers SET colname = \'"1": "pachou", "2": "eric", "3":  "francis", "4": "Henry"}\' WHERE tag_users_id="'.$_SESSION['tagusersid'].'" ');

Где colname - столбец, в который вы хотите сохранить JSON.

  • 0
    Привет, спасибо за ваш ответ, приятно и работает ...
  • 0
    Если это решит вашу проблему, было бы хорошо, если бы вы отметили его как принятое, чтобы другие пользователи, которые ищут этот вопрос, могли его найти.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню