تخزين واسترداد صفيف متعدد الأبعاد باستخدام PHP و MySQL

StackOverflow https://stackoverflow.com/questions/893461

  •  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)، ومعدل (ص) كنسيق جدول منفصل

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top