string = "SELECT * FROM xtable";
Esto es porque quiero que mis tablas en la base de datos tengan un prefijo que las haga de acceso más difícil para terceros, en el código para acceder a la base de datos uso la clase mysqli como padre de una clase llamada database, en el cual modifico el método query haciendo que en cada consulta se manipule la query de tal manera que a la tabla se le añada el prefijo, por medio de preg_replace().
es decir si hago un query del tipo:
database::query('SELECT x FROM table');
La query que se ejecutaría sería:
mysqli::query('SELECT x FROM prefix_table');
pero el pattern que muestro arriba no me funciona correctamente, es más, paso la query por eregi para ver si coincide, pero el resultado es negativo.
Alguien podría ayudarme a crear un buen pattern?
Código PHP:
preg_replace('/^(UPDATE|INSERT INTO|DELETE FROM|SELECT [.]+ FROM) ([\_\w]+)(| [.]*)$/i', "$1 {$prefix}$2 $3", $query);