Modifier le préfixe de toute les tables MySQL

Ce script permet de modifier le préfixe du nom de tables mysql. En effet, de nombreux CMS ou outils utilisent un préfixe commun à toutes les tables qu'ils utilisent.

J'ai développé ce script pour profiter d'une astuce de phpmyadmin. Elle permet de condenser l'affichage des tables dans la partie gauche. En effet, plusieurs tables ayant un préfixe suivi de deux underscore sont regroupées et l'affichage est condensable.

L'exemple ci-dessous permet donc d'ajouter un underscore à toutes les tables dont le nom commence par "forum" suivi par un underscore.

  Voir en MySQLi un code identique : Modifier le préfixe de toute les tables SQL


Information sur les mises à jour

Dernière mise à jour :

13 Sept 2019
fonctionnement du code vérifié

13 113  vues
Compatibilité du code
PHP 4, PHP 5
A savoir

Ces fonctions sont utilisées dans ce code source:
mysql_connect()    mysql_error()    mysql_fetch_row()    mysql_query()    mysql_select_db()   

Ces extensions étaient obsolètes en PHP 5.5.0, et ont été supprimées en PHP 7.0.0.
à la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL.
Voir aussi MySQL : choisir une API du guide et ces entrées de la FAQ pour plus d'informations.
Alternatives à cette fonction :
mysqli_connect() et PDO::__construct()

  code classé dans   MySQL
  code source classé dans   MySQL
 
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
                    
<?php
/*------------------------------*/
/*
Titre : Modifier le préfixe de toute les tables MySQL

Auteur : forty
Website auteur : http://www.toplien.fr/
Date édition : 19 Sept 2008
Date mise a jour : 13 Sept 2019

Rapport de la maj:
- fonctionnement du code vérifié
*/
/*------------------------------*/
$sql_serveur = "à  renseigner"; // Serveur mySQL
$sql_base = "à  renseigner"; // Base de données mySQL
$sql_login = "à  renseigner"; // Login de connection a mySQL
$sql_password = "à  renseigner"; // Mot de passe pour mySQL

$prefix_old = 'forum_';
$prefix_new = 'forum__';

$lk = @mysql_connect($sql_serveur, $sql_login, $sql_password) or die(
@mysql_select_db($sql_base, $lk) or die(mysql_error());

$q = mysql_query("SHOW TABLES LIKE '" . $prefix_old . "%'", $lk) or die(
while (($r = mysql_fetch_row($q)) !== false) {
$new_name = $prefix_new . substr($r[0], strlen($prefix_old));
mysql_query("RENAME TABLE `" . $r[0] . "` TO `" . $new_name . "` ;",
$lk) or die(mysql_error());
echo $r[0] . ' => ' . $new_name . "<br>\n";
}
?>
<?php
/*------------------------------*/
/*
Titre : Modifier le préfixe de toute les tables MySQL

Auteur : forty
Website auteur : http://www.toplien.fr/
Date édition : 19 Sept 2008
Date mise a jour : 13 Sept 2019

Rapport de la maj:
- fonctionnement du code vérifié
*/
/*------------------------------*/
$sql_serveur = "à  renseigner"; // Serveur mySQL
$sql_base = "à  renseigner"; // Base de données mySQL
$sql_login = "à  renseigner"; // Login de connection a mySQL
$sql_password = "à  renseigner"; // Mot de passe pour mySQL

$prefix_old = 'forum_';
$prefix_new = 'forum__';

$lk = @mysql_connect($sql_serveur, $sql_login, $sql_password) or die(
@mysql_select_db($sql_base, $lk) or die(mysql_error());

$q = mysql_query("SHOW TABLES LIKE '" . $prefix_old . "%'", $lk) or die(
while (($r = mysql_fetch_row($q)) !== false) {
$new_name = $prefix_new . substr($r[0], strlen($prefix_old));
mysql_query("RENAME TABLE `" . $r[0] . "` TO `" . $new_name . "` ;",
$lk) or die(mysql_error());
echo $r[0] . ' => ' . $new_name . "<br>\n";
}
?>

      Fonctions du code - Doc officielle PHP

   php.net  
Description
Versions PHP
    die
Alias de la fonction exit
PHP 4, 5, 7 et 8
    echo
Affiche une chaîne de caractères
PHP 4, 5, 7 et 8
    mysql_connect Ouvre une connexion à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)   !  OBSOLèTE en PHP 5.5.0, supprimée en PHP 7.0.0
    mysql_error Retourne le texte associé avec l'erreur générée - (PHP 4, PHP 5, PECL mysql:1.0)   !  OBSOLèTE en PHP 5.5.0, supprimée en PHP 7.0.0
    mysql_fetch_row Retourne une ligne de résultat MySQL sous la forme d'un tableau - (PHP 4, PHP 5, PECL mysql:1.0)   !  OBSOLèTE en PHP 5.5.0, supprimée en PHP 7.0.0
    mysql_query Envoie une requête à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)   !  OBSOLèTE en PHP 5.5.0, supprimée en PHP 7.0.0
    mysql_select_db Sélectionne une base de données MySQL - (PHP 4, PHP 5, PECL mysql:1.0)   !  OBSOLèTE en PHP 5.5.0, supprimée en PHP 7.0.0
    strlen
Calcule la taille d'une chaîne
PHP 4, 5, 7 et 8
    substr
Retourne un segment de chaîne
PHP 4, 5, 7 et 8
Minimum 10 mots. Votre commentaire sera visible après validation.


 Autres snippets qui pourraient vous intéresser

Modifie en MySQLi le préfixe de toute les tables SQL

Compatibilité : PHP 7, PHP 8

Pour que ce code fonctionne vous devez déjà avoir un préfixe à vos tables. Ce code n'ajoute pas un préfixe mais modifie un préfixe déjà existant.

Liste et supprime en MySQLi les tables d'une base MySQL

Compatibilité : PHP 7, PHP 8

Liste toute les tables de votre base de données MySQL dans un tableau HTML. Affiche des liens à chaque table trouvée avec la possibilité de supprimer la table.

* Requêtes exécutées avec Recherche Contextuelle

  Les derniers scripts PHP / MySQL

PmWiki 2.5.9

logo PmWiki
Langue langue fr
Date  hier
Taille 0.68 Mo
Catégorie Wiki

CubeCart 6.6.2

logo CubeCart
Langue langue en
Date 16 Avril 2026
Taille 16 Mo
Catégorie Ecommerce

Magepattern 1.1

logo Magepattern
Langue langue fr
Date 15 Avril 2026
Taille 6 Mo
Catégorie CMS

PHP 8.5.5

logo PHP
Langue langue us
Date 12 Avril 2026
Taille 32 Mo
Catégorie PHP

PHP 8.4.20

logo PHP
Langue langue us
Date 12 Avril 2026
Taille 30 Mo
Catégorie PHP

Serendipity 2.6.0

logo Serendipity
Langue langue fr
Date 11 Avril 2026
Taille 15 Mo
Catégorie Blogs
avatar

Forty

  19 Sept 2008

  SOURCE   Télécharger

Information sur les mises à jour

Dernière mise à jour :

13 Sept 2019
fonctionnement du code vérifié

13 113 Vues
Compatibilité du code
PHP 4, PHP 5