Con DatabaseIterator podemos remover as slash dunha base de datos inseridas por ter a directiva magic_quote habilitada no php.ini
$conn = ADONewConnection('mysql');
$conn->PConnect('localhost', 'root', 's3cr3t', 'databasename');
// DatabaseIterator
$dbIt = new DatabaseIterator($conn);
// process tables
foreach($dbIt as $table) {
$columns = $table->getColumns();
$i = 0;
// process columns
foreach($columns as $column) {
if(!$column->isPK()) {
$colName = $column->name;
// Retrieve bad rows
$rows = $table->select()
->where( $colName . ' REGEXP ""')
->execute();
foreach($rows as $row) {
$previous = $row->{$colName};
$row->{$colName} = str_replace("\\", '', $previous);
$row->update();
$i++;
//echo($previous . ' -> ' . $row->{$colName});
}
}
}
echo("Table {$table->name} fixed. $i fields changed." . PHP_EOL);
}
Documentación: