Hi,
In most cases when you have to use eval() there is no thing to do else using eval(). However, the usage of eval() should be apply what we may call Fully controlled usage of eval(). This behavior may seem like securing or validation of forms. The full control of eval() requires pre-validation and examination of its arguments before its execution. For example, applying your case, you should be sure that records that contains string that is going to be evaluated is controlled and has the content you expect. In other word, users has no ability to change this records for example and for step 1 should the evaluated record to be record number 1 not 2.
You should be assured that the evaluated string could not be changed with other string.