Dimensione massima del valore in un arrays PHP

Esiste un limite su una string di valori nell'arrays associativo php?

Ho una query che restituisce il valore di GROUP_CONCAT come CSV per un elemento dell'arrays. Quando eseguo direttamente la query, vedo tutti i valori restituiti. Quando stampo la matrix in PHP, la string viene troncata.

Non sei sicuro di come aggirarlo? Qualche idea?

Maggiori informazioni: ho appena var_dump i risultati ottenuti dalla query. Ecco qui. Mostra 1024. Sembra che ci sia un limite. Che cos'è?

  arrays(5) { ["FIELD_ID"]=> string(3) "232" ["answers"]=> string(1024) "48,50,52,54,56,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192," ["ANSWER_TYPE"]=> string(2) "SS" ["FIELD_TYPE"]=> string(2) "DA" ["main_field_name"]=> string(0) "" } 

Ulteriori informazioni: il problema persiste anche dopo aver impostato la variabile group_concat_max_len su 5000. Altre idee? Qualche problema con PDO?

Dopo aver riavviato MySQL, funziona. Grazie!

Potrebbe essere necessario leggere la lunghezza del massimo concat qui .

 Formato row di command --group_concat_max_len = #
 Opzione-Formato file group_concat_max_len
 Opzione Imposta variabile Sì, group_concat_max_len
 Nome variabile group_concat_max_len
 Ambito globale globale, session

 Variabile dynamic Sì
   - Valori consentiti
 Dimensione bit della piattaforma 32
 Digita numbersco
 Predefinito 1024
 Intervallo 4 .. 4294967295

   - Valori consentiti
 Dimensione bit della piattaforma 64
 Digita numbersco
 Predefinito 1024
 Gamma 4 .. 18446744073709547520

Edit: trovo piuttosto divertente che la string che ti viene restituita sia lunga 1024 – che è la lunghezza massima predefinita in mysql. Coincedence?

Quando si utilizza GROUP_CONCAT in mysql con il limite di lunghezza predefinito di 1024, qualsiasi valore superiore a quello dei risultati verrà troncato. Questo è successo anche a me.

Per determinare se questo è il problema, prova questo:

 // echo string length to determine what your variable value length is echo strlen($variable_here); 

Quindi controlla in che cosa è impostato il limite di concat in mysql eseguendo questa query:

 SHOW VARIABLES LIKE 'group_concat_max_len' 

L'ho eseguito in phpMyAdmin. Se ottieni lo stesso valore da strlen e la query SHOW VARIABLES , dovrai aggiornare il tuo file my.conf o chiedere al tuo host di farlo. In WHM / cPanel, si trova in /etc/my.conf e in quel file sarà necessario avere qualcosa di simile a questo:

 [mysqld] #<-- Under that group_concat_max_len=5120 #<-- add this 

Ho scelto 5×1024 per renderlo 5120 solo per non whererlo affrontare di nuovo. Una volta salvato il file conf sul server, sarà necessario riavviare il servizio mysql. Se utilizzi WHM, puoi farlo in Home »Riavvia i servizi» SQL Server (MySQL)

Una volta eseguita la procedura di cui sopra, la strlen ha fatto eco a 3519 e il valore non è più stato interrotto.

La tua domanda è alquanto complicata da rispondere in quanto: 1. fornisci pochissime informazioni sulla dimensione effettiva della tua string. 2. Stai facendo diverse domande (size dell'arrays e size della string).

Dovresti dare un'occhiata a questa domanda e poi fornirci ulteriori informazioni come la versione di php che stai usando e anche come dice @FLuffeh nel suo commento per favore mostraci del codice.