كيف يمكنني تحديد الخلية التي أعدت أسماء الأعمدة نتيجة بيان في PHP؟

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

سؤال

وهذا هو، مع بيان معد سلفا مثل:

select col1,...coln from table where col3 = ?

وأعتقد أنني يمكن استخدام $ mysqli-> field_count للحصول على عدد الأعمدة التي يتم إرجاعها (لم يحاكم).

ولكن هل هناك طريقة لربط كل اسم العمود إلى القيم التي يتم إرجاعها في bind_results؟ ويمكنني أن نحاول دائما لتحليل أسماء الأعمدة الخروج من الأمر نفسه، ولكن هذا ليس الطريق أريد أن أذهب إلى أسفل.

السياق:

وأريد أن أكون قادرة على تحديد واجهة PHP التي تعين خصائص الفئة لأسماء الأعمدة عاد من قاعدة البيانات. حتى تعطى

class A implements IColumnMapped{
    public $prop1, $prop2; private $map;
    public function __construct() {
        $map = array();
        $map['col1'] = & $this->prop1;
        $map['col2'] = & $this->prop2;
    }
    public function getMap() { return $this->map;}
}

و

$mysqli->prepare("select col0, col1, col2, col3 from table");

ويمكنني استخدام bind_results ثم تفعل شيئا مثل (رمز pseudoish)

for($resultColumns as $columnName) {
    if(isset($map[$columnName])) $map[$columnName] = $results[$columnName];
}

ولسحب فقط العمودين أحتاج (COL1 وcol2) وتعيينها إلى الخصائص الصحيحة من الدرجة A.

هل كانت مفيدة؟

المحلول

نصائح أخرى

وشكرا لهذا التصحيح. انها مفيدة للغاية عندما يكون لديك أي خيار أمام "تحديد * S.

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