تخزين واسترداد صفيف متعدد الأبعاد باستخدام PHP و MySQL
-
23-08-2019 - |
سؤال
لدي مجموعة متعددة الأبعاد في PHP مثل هذا:
$array = array(
"Part1" => array(
"Subpart1" => array(0, 1),
"Subpart2" => array(1, 0)
),
"Part2" => array(0),
"Part3" => array(0, 1, 0)
);
الآن أريد تخزين هذه الصفيف في طاولة MySQL واسترجعها تماما مثل هذا مرة أخرى على صفحة PHP أخرى.
لقد كنت أحاول استخدام serialize()
و unserialize()
$array= serialize($array);
ثم على الصفحة الأخرى
$array= $row['Array'];
$array2 = array();
$array2 = unserialize($array);
لكنني يبدو أنني أفعل شيئا خاطئا، في البداية حصلت على var_dump
من BOOL (خطأ) والآن أحصل على var_dump
من باطل.
المحلول
يبدو رمزك موافق ...
شيء واحد يمكن أن يقبض عليك هو إذا كان العمود الخاص بك صغير جدا - إذا كنت تستخدم varchar (255)، فيمكن اقتطاع بياناتك ولن يتمكنت من غير المتخصصة. إذا قمت بإضافة قيمة $row['Array']
استطيع ان ارى ما اذا كان كله.
نصائح أخرى
استخدام نص العمود. البيانات المتسلسلة في كثير من الأحيان لا تناسب varchar (255).
يمكنك استخدام JSON EXODE، JSON_ENCODE (صفيف $) وستحصل على قيمة سلسلة في تدوين JSON حتى تتمكن من تخزينها في قاعدة البيانات، والاستراحة والقيام ب json_decode (سلسلة $، TRUE) حتى تقوم بتحويلها في صفيف مرة أخرى. إذا لم تقم بتمرير الوسيطة الحقيقية إلى JSON_DECODE، فسوف يتم تحويلها إلى Stdclass.
هذا هو طاولتي في PHP / HTML. أحتاج إلى تخزين واسترداد تفاصيل PHP (P)، والكمية (Q)، ومعدل (ص) كنسيق جدول منفصل