Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.www.php > #21211 > unrolled thread

PDO salva metà stringa senza errore

Started byRedWiz <redwiz@inwind.it>
First post2016-10-19 13:39 +0000
Last post2016-10-19 16:09 +0100
Articles 3 — 2 participants

Back to article view | Back to it.comp.www.php


Contents

  PDO salva metà stringa senza errore RedWiz <redwiz@inwind.it> - 2016-10-19 13:39 +0000
    Re: PDO salva metà stringa senza errore RedWiz <redwiz@inwind.it> - 2016-10-19 14:08 +0000
    Re: PDO salva metà stringa senza errore Alessandro Pellizzari <shuriken@amiran.it> - 2016-10-19 16:09 +0100

#21211 — PDO salva metà stringa senza errore

FromRedWiz <redwiz@inwind.it>
Date2016-10-19 13:39 +0000
SubjectPDO salva metà stringa senza errore
Message-ID<nu7t29$3bc$1@virtdiesel.mng.cu.mi.it>
Ciao a tutti,

ho questo singolare problema con pdo che non riesco a spiegarmi.
praticamente quello che devo fare è salvare su db l'output di alcune 
chiamate alla customsearch di google (che mi ritorna un json). In questo 
json ci sono i risultati di una ricerca, io prendo questo json, lo 
decodo, ci faccio quello che ciu devo fare, poi lo serializzo e lo salvo 
su db mysql tramite PDO prepared statement(in un campo longtext).
Mi sono accorto che poi in un caso specifico la deserializzazione 
dell'array salvato al punto precedente falliva.Praticamente quello che 
succede è che ad un certo punto del json c'è una sequenza di caratteri 
strani (potete vederli qui https://www.instagram.com/leo_young_/?hl=pt-br 
sono nella prima riga del paragrafo, anche se io vado a salvare realmente 
nel db  quelli dentro ai tag meta opengraph, ma comunque dovrebbero 
essere gli stessi).
Insomma praticamente quello che succede è che nel db mi ritrovo tutta la 
stringa *fino*  alla prima occorrenza di quei caratteri, poi niente. (???)

Come è possibile? 
Ma soprattutto, come è possibile che PDO  sia ingrado di inserire metà 
dati senza poi ritornare nessun tipo di errore/eccezione. La query è 
eseguita tramite prepared. 


Qualcuno ha qualche idea?

grazie

Red

[toc] | [next] | [standalone]


#21212

FromRedWiz <redwiz@inwind.it>
Date2016-10-19 14:08 +0000
Message-ID<nu7uo9$3bc$2@virtdiesel.mng.cu.mi.it>
In reply to#21211
On Wed, 19 Oct 2016 13:39:21 +0000, RedWiz wrote:

> Ciao a tutti,
> 
> Come è possibile?
> Ma soprattutto, come è possibile che PDO  sia ingrado di inserire metà
> dati senza poi ritornare nessun tipo di errore/eccezione. La query è
> eseguita tramite prepared.

ho fatto un ulteriore controllo, passandi la stringa incriminata da 
PDO::quote, è lui che la taglia appena arriva al carattere strambo.

[toc] | [prev] | [next] | [standalone]


#21213

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2016-10-19 16:09 +0100
Message-ID<e6pglnF56j4U1@mid.individual.net>
In reply to#21211
On 19/10/2016 14:39, RedWiz wrote:

> Insomma praticamente quello che succede è che nel db mi ritrovo tutta la
> stringa *fino*  alla prima occorrenza di quei caratteri, poi niente. (???)

> Qualcuno ha qualche idea?

Sono emoji. Se non ricordo male PDO::quote fa l'escape in base al DB a 
cui sei connesso.

Controlla se hai settato utf8mb4 su MySQL. Se hai solo utf8 o, peggio, 
iso-8859-1, probabilmente te li tronca per quel motivo.

Bye.

[toc] | [prev] | [standalone]


Back to top | Article view | it.comp.www.php


csiph-web