Я не нашел хороший синтаксис для обновления моей таблицы на 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 в
В этом запросе есть две ошибки:
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.