Archives FluxBB.fr

Les archives de FluxBB.fr

Vous n'êtes pas identifié(e).

#1 31-12-2007 14:37:01

slam2
Membre

Créer un SQL install

Bonjour,

DOnc voila, je voudrais créer un petit code SQL, qui s'installe dans la base de donnée comme l'installation d'une mode, mais celle-ci permettra d'insèrer un compte Administrateur.

<?php
/***********************************************************************/

// Some info about your mod.
$mod_title      = 'Recuperation.php';
$mod_version    = '2.0.0';
$release_date   = '2006-11-28';
$author         = 'Slam2';
$author_email   = 'no@mail.com';

// Versions of PunBB this mod was created for. Minor variations (i.e. 1.2.4 vs 1.2.5) will be allowed, but a warning will be displayed.

$punbb_versions    = array('1.2.16');

// Set this to false if you haven't implemented the restore function (see below)
$mod_restore    = false;

// This following function will be called when the user presses the "Install" button
function install()
{
    global $db, $db_type, $pun_config;

    switch ($db_type)
    {
        case 'mysql':
        case 'mysqli':
        default:
            $db->query("INSERT INTO`".$db->prefix."users` (
        (3, 1, 'slam2', '7958ef87d4b87f77357716ad920a20d5fb155251', 'private@hotmail.com', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, 1, 0, 1, 1, 1, 1, 1, 0, 'French', 'Mon_Theme', 75, 1198866815, 1195983830, '127.0.0.1', 1199101908, NULL, NULL, NULL, 1, 1, 1, '1', '5/18/1999');
        PRIMARY KEY  (`id`))") or error('Unable to alter the config table', __FILE__, __LINE__, $db->error() );


            break;
    }
}


/***********************************************************************/

Ce que je désire savoir, c'est si mon code SQL qui ajoutera mes variables dans la Base de donné Users et valide ! Car je ne suis pas Pro de ce coté !! la !

Merci beaucoup !

AMicalement Slam2

Hors ligne

#2 31-12-2007 15:17:55

PascL
Membre

Re : Créer un SQL install

Salut, on ne connaît pas ta base de données (les champs + leur ordre si t'as rajouté des mods), donc difficile de répondre.

Par contre, le premier est l'id de l'utilisateur, donc là tu vas écraser l'id 3 (si mysql te laisse faire mais j'en suis pas certain...) à chaque fois.

et il manque un VALUES

Dernière modification par PascL (31-12-2007 15:20:42)

Hors ligne

#3 31-12-2007 15:26:47

slam2
Membre

Re : Créer un SQL install

Merci de ta réponse !! voila ce que sa donne :

            $db->query("INSERT INTO`".$db->prefix."users` (`id`, `group_id`, `username`, `password`, `email`, `title`, `realname`, `url`, `jabber`, `icq`, `msn`, `aim`, `yahoo`, `location`, `use_avatar`, `signature`, `disp_topics`, `disp_posts`, `email_setting`, `save_pass`, `notify_with_post`, `show_smilies`, `show_img`, `show_img_sig`, `show_avatars`, `show_sig`, `timezone`, `language`, `style`, `num_posts`, `last_post`, `registered`, `registration_ip`, `last_visit`, `admin_note`, `activate_string`, `activate_key`, `use_pm`, `popup_pm`, `notify_mp`, `malefemale`, `birthdate`)
                        VALUES(3, 1, 'slam2', '5958ef87d4b876f7735416adgfd0a20d5fb155251', 'snacks59@hotmail.com', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, 1, 0, 1, 1, 1, 1, 1, 0, 'French', 'France-Ados', 75, 1198866815, 1195983830, '127.0.0.1', 1199101908, NULL, NULL, NULL, 1, 1, 1, '1', '5/18/1989');
        PRIMARY KEY  (`id`))") or error('Unable to alter the config table', __FILE__, __LINE__, $db->error());

Je ne vois pas comment faire pour évité qu'il écrase le compte :S !!

Mais au final je me retrouve avec ceci : Database reported: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; PRIMARY KEY (`id`))' at line 2 (Errno: 1064)

Dernière modification par slam2 (31-12-2007 15:27:48)

Hors ligne

#4 31-12-2007 16:19:12

PascL
Membre

Re : Créer un SQL install

Ah désolé pas fait attention à la fin de ton code, faut enlever le primary key pour que ça donne ça :

$db->query("INSERT INTO `".$db->prefix."users` (`id`, `group_id`, `username`, `password`, `email`, `title`, `realname`, `url`, `jabber`, `icq`, `msn`, `aim`, `yahoo`, `location`, `use_avatar`, `signature`, `disp_topics`, `disp_posts`, `email_setting`, `save_pass`, `notify_with_post`, `show_smilies`, `show_img`, `show_img_sig`, `show_avatars`, `show_sig`, `timezone`, `language`, `style`, `num_posts`, `last_post`, `registered`, `registration_ip`, `last_visit`, `admin_note`, `activate_string`, `activate_key`, `use_pm`, `popup_pm`, `notify_mp`, `malefemale`, `birthdate`) VALUES (3, 1, 'slam2', '5958ef87d4b876f7735416adgfd0a20d5fb155251', 'snacks59@hotmail.com', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, 1, 0, 1, 1, 1, 1, 1, 0, 'French', 'France-Ados', 75, 1198866815, 1195983830, '127.0.0.1', 1199101908, NULL, NULL, NULL, 1, 1, 1, '1', '5/18/1989')") or error('Unable to alter the config table', __FILE__, __LINE__, $db->error());

Par contre, comme j'ai dit plus haut, Mysql devrait t'empêcher d'insérer ça (puisque l'id3 existe déjà normalement).
Après, ça dépend le but de ta mod (perso, je vois pas à quoi ça peut servir...).
Si c'est de mettre à jour un compte existant, c'est pas une requête INSERT qu'il faut utiliser mais UPDATE (et la syntaxe est différente il suffit pas de changer un mot).
Si c'est en créer un nouveau, tu enlèves dans mon code [c]`id`, [/c] et [c]3,[/c] et ça créera un nouveau compte admin (avec un id qui n'existe pas)

Dernière modification par PascL (31-12-2007 16:19:56)

Hors ligne

#5 31-12-2007 16:23:13

Mpok
Néo Admin

Re : Créer un SQL install

Pour la syntaxe, il suffit de supprimer ce "PRIMARY..." qui ne sert à rien (les index sont de toutes façons déclarés lors de la création de la table).

Mais comme signalé plus haut, pour que ça fonctionne, il faut que l'utilisateur d'id 3 n'existe pas dans la base (sinon tu vas te retrouver avec une erreur "duplicate index").

Pour le remplacer, il faut faire une requête UPDATE (syntaxe légèrement différente, voir le manual mySql).

Et sur le fond, je ne comprends pas à quoi cela peut servir de "ré-initialiser" un compte utilisateur (mais peut-être en as-tu l'utilité pour une config spéciale...)

Edit : grillé par Pascl, d'où 2 réponses pour le prix d'une smile

Dernière modification par Mpok (31-12-2007 16:25:05)

Hors ligne

Pied de page des forums