Il linguaggio di programmazione PHP
 

PDO salva metà stringa senza errore

RedWiz 19 Ott 2016 15:39
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 *****izzo e lo salvo
su db mysql tramite PDO prepared statement(in un campo longtext).
Mi sono accorto che poi in un caso specifico la de*****izzazione
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
RedWiz 19 Ott 2016 16:08
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.
Alessandro Pellizzari 19 Ott 2016 17:09
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.

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio di programmazione PHP | Tutti i gruppi | it.comp.www.php | Notizie e discussioni php | Php Mobile | Servizio di consultazione news.