Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Problem z dodaniem json_encode do bazy danych
Forum PHP.pl > Forum > Przedszkole
lekosm2
Hej, chciałbym zapisać tablicę w formie json_encode do bazy danych. Niestety podczas próby dodania jej do bazy danych otrzymuję błąd.
Fragment kodu wygląda tak:
  1. if (($result = $db->query('SELECT id, groupId, groupClients FROM premium_channels'))->rowCount() > 0)
  2. {
  3. foreach($result->fetchAll(\PDO::FETCH_ASSOC) as $premium)
  4. {
  5. $clientsGroup = [];
  6.  
  7. $serverGroupClientList = $ts3->get('serverGroupClientList', [$premium['groupId']]);
  8. foreach($serverGroupClientList as $client)
  9. {
  10. $clientsGroup[] = $client['cldbid'];
  11. }
  12.  
  13. $clientsGroup = json_encode($clientsGroup);
  14.  
  15. if($premium['groupClients'] != $clientsGroup)
  16. {
  17. $db->query('UPDATE premium_channels SET groupClients = '.$clientsGroup.' WHERE id = '.$premium['id'].'');
  18. }
  19. }
  20. }

Gdy uruchamiam kod mam następujący błąd w konsoli:
[Database] - Error, błędne zapytanie: `UPDATE premium_channels SET groupClients = ["1179","1178","1119","1089","1117","1092","1097","1320","1115"] WHERE id = 18`

A gdy próbuję ręcznie wpisać zapytanie w phpmyadmin to ukazuje się takie coś:



Pomoże ktoś? smile.gif
viking
No i słusznie, brakuje odpowiedniego quotowania. Najlepiej używaj prepare i bindowania
Tomplus
Jakbyś dodał pojedyncze apostrofy to problemu nie miałbyś, dodając json w kodzie SQL, jeżeli tak robisz, pamiętaj że kod JSON to string, a ciągi znaków należy okalać apostrofami pojedynczymi ' lub podwójnymi " - w zależności od tego jaki kod dostarczasz.

np. "I'm Bond, James Bond." lub 'Obiekt ma 5" długości.'
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.