logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

creer-son-site-web-en-php _ Installer mysql, créer une BDD pour un site en php objet

  • Objet : Mise en place d'une base de données mysql, organiser le code de son site web selon les conventions de la programmation orientée objet.
  • Niveau requis :

Installations relative à la base de données

apt-get install php5-mysql 
apt-get install mysql-server
apt-get install phpmyadmin

Utilisation

Base de données, table membre

On crée la base de données

./creerMysqlBDDetUser.sh essaiLogin essaiLogin <motDePasse>

Création des tables membre et login

#-- fichier : /home/$user/createTableMembreLogin.sql
USE essaiLogin;
 
DROP TABLE IF EXISTS `login`;
 
CREATE TABLE IF NOT EXISTS login(
  login_id INT NOT NULL AUTO_INCREMENT,
  pseudo VARCHAR(20) NOT NULL,
  motPasse VARCHAR(100) NOT NULL,
  cle VARCHAR(50) NULL,
  actif TINYINT(1) NULL,
  mail VARCHAR(50) NOT NULL,
  lastConnect TIMESTAMP DEFAULT 0,
  PRIMARY KEY  (login_id),
  UNIQUE KEY username (pseudo)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 
DROP TABLE IF EXISTS `membre`;
 
CREATE TABLE IF NOT EXISTS membre(
  membre_id INT NOT NULL AUTO_INCREMENT,
  prenom VARCHAR(50) NOT NULL,
  nom VARCHAR(50) NOT NULL,
  isAdmin tinyint(1) NOT NULL DEFAULT 0,
  dateInscription TIMESTAMP DEFAULT CURRENT_TIMESTAMP(),
  dateModif TIMESTAMP DEFAULT 0,
  idLogin INT NOT NULL,
  PRIMARY KEY  (membre_id),
  CONSTRAINT FK_login FOREIGN KEY(`idLogin`) REFERENCES login(`login_id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysql -uessaiLogin -p <createTableMembreLogin.sql

Quelques insertions pour les tests

#--fichier : /home/$user/insertTableMembreLogin.sql
USE essaiLogin;
 
SET FOREIGN_KEY_CHECKS=0;
TRUNCATE `login`;
SET FOREIGN_KEY_CHECKS=1;
DELETE FROM `login`;
 
INSERT INTO login(pseudo, motPasse, mail) VALUES 
('admin', '$2y$09$vDdO6/IMSHdk/ja2MQGHfO1KJasWHNRCUDr4ZCecaZjtl4GpM3I9m', 'admin@adm.fr');
 
 
SET FOREIGN_KEY_CHECKS=0;
TRUNCATE `membre`;
DELETE FROM `membre`;
 
 
INSERT INTO membre(prenom, nom, isAdmin, dateInscription, idLogin) VALUES 
('admin', 'Admin', 1, now(), 1);
mysql -uessaiLogin -p <insertTableMembreLogin.sql
BOOL, BOOLEAN

These types are synonyms for TINYINT(1). A value of zero is considered false. Nonzero values are considered true
// pour première insertion
$pseudo = "admin";
$motPasse = "admin";
echo "<p>mot de passe pour " .$pseudo. ": </p>";
$motPasseHash = password_hash($motPasse,PASSWORD_BCRYPT,['cost' => 9]);
echo "<p>".$motPasseHash."</p>";
//
$bool = password_verify($motPasse, $motPasseHash);
var_dump($bool);
 
// retour :
//mot de passe pour admin:
//$2y$09$OLK0HP3JDYjMKSoJxC00o.MCnMWHjT/sUI.rynSHxw.p9A6tSZYM.
//boolean true
Remarque sur les dates :

Pour le champ dateModif, si on avait choisi le type DATE à la place de TIMESTAMP

CREATE TABLE IF NOT EXISTS membre(
<...>
  dateInscription TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  dateModif DATE,
<...>
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

On aurait pu modifier la date seulement

  • avec la fonction mysql now() :
UPDATE `membre` SET `dateModif`=NOW() WHERE `pseudo`='admin';
  • ou avec la fonction mysql CURRENT_TIMESTAMP() :
UPDATE `membre` SET `dateModif`=CURRENT_TIMESTAMP() WHERE `pseudo`='admin';
  • qui donneraient ce résultat :
select pseudo, dateModif from membre where pseudo='admin';
+-------+------------+
| pseudo | dateModif  |
+-------+------------+
| admin | 2016-06-24 |
+-------+------------+
utilisateurs/hypathie/tutos/creer-son-site-web-en-php-_-installer-mysql-creer-une-bdd-pour-un-site-en-php-objet.txt · Dernière modification: 01/09/2016 10:48 par Hypathie

Pied de page des forums

Propulsé par FluxBB