Banco de Dados

Localizar/Substituir no banco de dados

3 min read

Como substituir textos em todas as tabelas do banco de dados utilizando PHP e MySQLi

Muitas vezes, pode ser necessário substituir determinados textos em todas as tabelas de um banco de dados. Isso pode ser útil, por exemplo, quando você precisa atualizar URLs, corrigir erros de digitação ou realizar mudanças em massa nos dados. Neste artigo, vamos apresentar um código PHP que permite fazer essa substituição de forma automática em todas as tabelas do banco de dados utilizando a extensão MySQLi.

Thank you for reading this post, don't forget to subscribe!

Passo a passo:

  1. Conexão com o banco de dados: Antes de iniciar a substituição, é necessário estabelecer a conexão com o banco de dados. Para isso, você precisa fornecer as informações corretas do servidor, usuário, senha e nome do banco de dados. O código a seguir ilustra como fazer a conexão:
$servername = "localhost";
$username = "seu_usuario";
$password = "sua_senha";
$dbname = "nome_do_seu_banco";

// Conecta ao banco de dados
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Falha na conexão com o banco de dados: " . $conn->connect_error);
}
  • Obtenção da lista de tabelas: Após a conexão bem-sucedida com o banco de dados, precisamos obter a lista de todas as tabelas presentes nele. Para isso, executamos uma consulta SQL para recuperar os nomes das tabelas. O resultado é armazenado em um array para ser utilizado posteriormente. O trecho de código abaixo realiza essa etapa:
$tables = array();
$sql = "SHOW TABLES";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    while ($row = $result->fetch_row()) {
        $tables[] = $row[0];
    }
}
  • Substituição em cada tabela: Agora que temos a lista de tabelas, podemos percorrer cada uma delas e executar a substituição desejada. Primeiro, definimos o texto a ser pesquisado e o texto a ser substituído. Em seguida, percorremos cada tabela e cada coluna do banco de dados, executando um comando UPDATE para substituir o texto especificado em todas as colunas de texto encontradas. O código a seguir realiza essa etapa:
$search_text = "Texto a Ser Pesquisado";
$replace_text = "Texto a ser substituído";

foreach ($tables as $table) {
    $sql = "SHOW COLUMNS FROM $table";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $column = $row["Field"];
            $type = $row["Type"];
            if (strpos($type, "text") !== false || strpos($type, "char") !== false) {
                $updateSql = "UPDATE $table SET $column = REPLACE($column, '$search_text', '$replace_text')";
                $conn->query($updateSql);
            }
        }
    }
}
  • Fechamento da conexão e mensagem de conclusão: Por fim, é importante fechar a conexão com o banco de dados e exibir uma mensagem de conclusão para o usuário, informando que a substituição foi concluída em todas as tabelas do banco de dados. O código abaixo realiza essa etapa:
$conn->close();
echo "Substituição concluída em todas as tabelas do banco de dados.";

Esperamos que este artigo tenha sido útil e tenha fornecido uma solução eficiente para realizar a substituição de textos em todas as tabelas do banco de dados. Caso tenha alguma dúvida ou precise de mais informações, sinta-se à vontade para entrar em contato. Agradecemos por ler nosso artigo e estamos à disposição para ajudar.

Faça o download do arquivo já criado aqui!

Obrigado pela leitura!