كيف يمكنني تحديد الخلية التي أعدت أسماء الأعمدة نتيجة بيان في PHP؟
-
06-07-2019 - |
سؤال
وهذا هو، مع بيان معد سلفا مثل:
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.
المحلول
mysqli_result :: fetch_object و mysqli_result :: fetch_fields يمكن أن تساعدك.
نصائح أخرى
وشكرا لهذا التصحيح. انها مفيدة للغاية عندما يكون لديك أي خيار أمام "تحديد * S.