Registros activos de PHP en combinación con una tabla con nombres de columna en forma de matriz

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

  •  28-10-2019
  •  | 
  •  

Pregunta

Estoy trabajando con PHP Activerecords.Estoy tratando de que funcione con una tabla que tiene nombres de columna que se parecen a una matriz:

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

Elegí nombres de columnas en forma de matriz ya que los datos contenidos en esta tabla pueden variar.

Ahora, cuando quiera usar los datos en la columna, usaría la siguiente declaración

$tabelname->id

esto funciona y devolverá la identificación;Cuando uso el siguiente código:

$tabelname->column[1]

Recibo el siguiente error: Error fatal de PHP: excepción no detectada 'ActiveRecord \ UndefinedPropertyException' con el mensaje 'Propiedad no definida: nombre de tabla-> columna

Para fines de visualización, puedo solucionar este problema utilizando el siguiente código:

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

Pero de esta manera no puedo actualizar los datos de la tabla.¿Alguien tiene una solución para acceder a los datos tanto para leer como para escribir?

Mysql: Serverversie: 5.1.41-3ubuntu12.8

PHP: Versión de PHP 5.3.2-1ubuntu4.14

¿Fue útil?

Solución

Lo que no esperaba trabajar hizo:

Cambié los nombres de las columnas de la columna [1] a column_1.Luego, en mi código, accedí a ellos a través del siguiente método:

$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();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top