Génération d'id unique - Plantage serveur

  • Auteur de la discussion Auteur de la discussion SCN
  • Date de début Date de début
Nouveau WRInaute
Bonjour,
Quand je lance ce script mon serveur plante.
Code:
<?php
$db_user = 'user1';
$db_pass = 'xxx';
$db_host = 'localhost';
$db_name = 'ref';
try{
$link = new PDO('mysql:host='.$db_host.';
dbname='.$db_name.'; charset=utf8', $db_user, $db_pass);
// Activation des erreurs PDO

$link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
$link->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

} catch(PDOException $e) {
   die('Erreur : ' . $e->getMessage());
}


function code_acces($length=8){
    $chars = '0123456789abcdefghijklmnopqrstuvwxyz';
    $string = '';
    for($i=0; $i<$length; $i++){
        $string .= $chars[rand(0, strlen($chars)-1)];
    }
    echo $string.'<br />';
    $sth = $link->prepare('INSERT INTO `refs` (`id`, `person`, `referer_id`, `valid`) VALUES (NULL, ?, ?, ?)');
    $sth->execute(array($string,'1','0'));

}
code_acces();
?>

Voyez-vous pourquoi ?
 
WRInaute accro
Yo :)
Y'a p'tit truc que je ne comprends pas sur ton "insert". Si je comprends bien, tu ajoutes un nouvel utilisateur.
Théoriquement, chaque utilisateur a un ID qui lui est propre, non ?
Donc ta table "ref" ne devrait-elle pas incrémenter à chaque insertion ? Au lieu de mettre NULL, quel est l'intérêt dans ces cas-là d'avoir un ID = NULL ??!!
Ne serait-ce pas plutôt:
Code:
$sth = $link->prepare('INSERT INTO `refs` (`person`, `referer_id`, `valid`) VALUES (?, ?, ?)')
Have fun ;)
 
Discussions similaires
Haut