PHP-aktive Datensätze in Kombination mit einer Tabelle mit Array-ähnlichen Spaltennamen

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

  •  28-10-2019
  •  | 
  •  

Frage

Ich arbeite mit PHP Activerecords.Ich versuche, es mit einer Tabelle zum Laufen zu bringen, deren Spaltennamen einem Array ähneln:

tablename {
  id: int,
  column[1]: text,
  column[2]: text,
  ...
  column[10]: text
}

Ich habe Array-ähnliche Spaltennamen ausgewählt, da die in dieser Tabelle enthaltenen Daten variieren können.

Wenn ich nun die Daten in der Spalte verwenden möchte, würde ich die folgende Anweisung verwenden

$tabelname->id

Dies funktioniert und gibt die ID zurück.Wenn ich den folgenden Code verwende:

$tabelname->column[1]

Ich erhalte folgende Fehlermeldung: Schwerwiegender PHP-Fehler: Nicht erfasste Ausnahme 'ActiveRecord \ UndefinedPropertyException' mit der Meldung 'Undefinierte Eigenschaft: Tablename-> column

Zu Anzeigezwecken kann ich dieses Problem mit dem folgenden Code umgehen:

$tempdata = array();
foreach(tablename->attributes() as $key ->$value)
{
  $tempdata[$key] = $value
}

Auf diese Weise kann ich die Daten in der Tabelle nicht aktualisieren.Hat jemand eine Lösung für den Zugriff auf die Daten zum Lesen und Schreiben?

MySQL: Serverversie: 5.1.41-3ubuntu12.8

PHP: PHP Version 5.3.2-1ubuntu4.14

War es hilfreich?

Lösung

Was ich nicht erwartet hatte, war:

Ich habe die Spaltennamen von Spalte [1] in Spalte_1 geändert.Dann habe ich in meinem Code über die folgende Methode darauf zugegriffen:

$key = 1; // this is coming from a parameter
$columnname = 'column_' . $key;
$table->$columname = "new value"; // I didn't expect a variable to work as an attribute name
$table->save();

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top