Iterating over a table (with Zend_Db_Table and Zend_Paginator)
So frequently, I need to run small data migrations or transformations. Especially on the way to Doctrine, there's a lot to clean-up in a database which has been used and evolved over five years or so.
The other day, I wanted to run some transformations on the data located a history column in a pretty simple table — here's what it looks like:
mysql> SHOW FIELDS FROM data; +-------------+------------------+------+-----+---------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------------+------+-----+---------------------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | first | varchar(255) | YES | MUL | NULL | | | last | varchar(255) | YES | MUL | NULL | | | email | varchar(255) | YES | MUL | NULL | | | history | varchar(255) | YES | MUL | NULL | | | rec_datemod | datetime | YES | | NULL | | | rec_dateadd | datetime | NO | MUL | 0000-00-00 00:00:00 | | +-------------+------------------+------+-----+---------------------+----------------+ 12 rows in set (0.02 sec)
Building a class to interface the table is simple:
<?php
class Data extends Zend_Db_Table_Abstract
{
protected $_primary = 'id';
protected $_name = 'data';
}
Now it should be easy to iterate across it, find data and save — wrong!
Continue reading "Iterating over a table (with Zend_Db_Table and Zend_Paginator)"