Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Problem z dodaniem json_encode do bazy danych
lekosm2
post
Post #1





Grupa: Zarejestrowani
Postów: 141
Pomógł: 0
Dołączył: 9.10.2015

Ostrzeżenie: (0%)
-----


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ś:
(IMG:https://i.imgur.com/MFqcKQb.png)


Pomoże ktoś? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


No i słusznie, brakuje odpowiedniego quotowania. Najlepiej używaj prepare i bindowania
Go to the top of the page
+Quote Post
Tomplus
post
Post #3





Grupa: Zarejestrowani
Postów: 1 883
Pomógł: 231
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


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.'
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.09.2025 - 02:55