martes, 4 de octubre de 2011

Modificar una ruta Absoluta de un archivo en la Base de datos

Alguna vez has tenido la necesidad de cambiar de servidor tu proyecto y casualmente tienes en tus tablas de archivos rutas absolutas el cual deseas cambiarlo.

Bueno aquí comparto este script en PHP que busca una cadena dentro de la URL y la reemplaza  por la cadena que deseas.
















Aquí el Código


<?php
$cnn = mysql_connect('localhost', 'root', 'root');
mysql_select_db('name_bd');

$searchText = "/home/project1/www";

$replaceText = "/var/www/project1";

$result = mysql_query('SELECT id_file,chr_path FROM tb_file WHERE chr_path LIKE "%'.$searchText.'%"');

$count = 0;
while ($row = mysql_fetch_array($result)) {
    $count++;
    $newContent = str_replace($searchText, $replaceText, $row['chr_path']);
    //$newGuid = str_replace($searchText, $replaceText, $row['guid']);
 
    $query = sprintf("UPDATE tb_file SET chr_path='%s' WHERE id_file = {$row['id_file']}",
    mysql_real_escape_string($newContent));
 
    $update = mysql_query($query);
}
echo $count;
?>

2 comentarios:

  1. Pero... no sería 100 veces mas fácil correr este query?:
    UPDATE tb_file
    SET chr_path='/var/www/proyect1'
    WHERE chr_path LIKE '%/home/proyect1/www%';

    ResponderEliminar
    Respuestas
    1. Totalmente de acuerdo xD, pero me parece que este fix fue para un caso especifico que lo requería así por un tercero no me recuerdo tanto los detalles, pero en fin, Gracias por el comment.

      Eliminar