sql >> Database >  >> RDS >> Mysql

Is er een geheugenlimiet voor de json_encode()-methode?

Steek in het duister:sommige van uw databaserijen bevatten niet-ASCII-tekens (bijv. ü, é en dergelijke). Uw databaseverbinding is ingesteld op latin1 , dus de gegevens zijn niet UTF-8-gecodeerd. json_encode vereist UTF-8-gecodeerde gegevens. Als u genoeg rijen ophaalt, zullen er rijen zijn met dergelijke niet-UTF-8-gegevens en json_encode mislukt. Met weinig rijen raak je die problematische rijen niet.

Test dit door echo json_last_error_msg(); . uit te voeren na json_encode .

Stel uw databaseverbinding in op UTF-8. Kijk hier hoe u dit doet:UTF-8 helemaal

De reden waarom uw browser klaagt over ongeldige JSON wanneer u een print_r . opneemt is eenvoudig:omdat PHP dan veel rommel produceert die geen JSON is, die de browser niet als JSON kan decoderen.



  1. Mijn 11g Optimizer-statistieken Job stop bij mij - opgelost

  2. Mysql-gebeurtenis werkt niet

  3. Datum- en tijdgegevens Bucketiseren

  4. Ondersteunt MySQL Regexp Unicode-matching?