Page 1 sur 1

Je ne parviens pas à créer une nouvelle Base de donnée en PHP

Posté : 04 févr. 2019, 18:23
par David10
Bonjour à tous,

Je me forme sur w3schools pour apprendre PHP/MySQL.
Je parviens a créer une table, insérer, modifier, effacer des données dans la base et les afficher.

Seul le script pour créer une nouvelle base de donnée ne fonctionne pas...


Example (MySQLi Object-oriented)

Code : Tout sélectionner

<?php $servername = "localhost"; $username = "username"; $password = "password"; // Create connection $conn = new mysqli($servername, $username, $password); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // Create database $sql = "CREATE DATABASE myDB"; if ($conn->query($sql) === TRUE) { echo "Database created successfully"; } else { echo "Error creating database: " . $conn->error; } $conn->close(); ?>
J'obtiens ce message: "Error creating database: Access denied for user 'wiiiproc'@'localhost' to database 'myBDD'"

Une idée?

Re: Je ne parviens pas à créer une nouvelle Base de donnée en PHP

Posté : 04 févr. 2019, 18:31
par @rthur
L'utilisateur MySQL "wiiiproc" n'a peut être pas les droits pour créer une nouvelle base de données ?

Teste ta requête dans phpmyadmin et tu verras si ça fonctionne.

A savoir qu'on n'a quasiment jamais besoin en PHP de créer une nouvelle base de données, en général on utilise toujours une base créée précédemment.

Re: Je ne parviens pas à créer une nouvelle Base de donnée en PHP

Posté : 04 févr. 2019, 19:53
par David10
Je te remercie pour ta réponse! J'ai testé illico dans PhpMyAdmin ceci : CREATE DATABASE Mabasedd

Verdict : MySQL a répondu :

#1044 - Accès refusé pour l'utilisateur: 'wiiiproc'@'@localhost'. Base 'Mabasedd'

Comment se fait t'il que quand j'installe des sites WordPress en un clic avec le softaculous de cPanel,
il crée de nouvelles bases de données et mes sites WP fonctionnent eux? Si WP y arrive, je devrais y arriver aussi, mais je ne vois pas là... :(

P.S: Tu penses que je peux me contenter d'une seule BDD et créer simplement des tables pour tous mes sites web?

P.S.S : Je viens d'y arriver avec cPanel "Bases de données MySQL- Créer une base de données. Ça marche.
Mais j'aimerais bien arriver à le faire depuis PHPmyAdmin et aussi avec un script PHP.
Peut-être dois-je modifier la config PHP quelque part depuis cPanel pour m'autoriser ce droit?

Re: Je ne parviens pas à créer une nouvelle Base de donnée en PHP

Posté : 04 févr. 2019, 20:12
par @rthur
Comment se fait t'il que quand j'installe des sites WordPress en un clic avec le softaculous de cPanel,
Parce qu'il utilise un autre utilisateur que "wiiiproc" pour créer des bases de données.
Un utilisateur qui a les droits de création sur la bdd.

Tu penses que je peux me contenter d'une seule BDD et créer simplement des tables pour tous mes sites web?
Techniquement il est possible de n'utiliser qu'une seule base de données pour héberger plusieurs Wordpress en choisissant des prefixes différents (cf la capture d'écran ci-dessous).

Toutefois pour des raisons de sécurité il est préférable d'avoir une base de données différentes pour chaque Wordpress ET même surtout d'avoir des espaces d'hébergements différents (isolés) pour chaque Wordpress.
Wordpress est le CMS le plus utilisés sur le web et par voie de conséquence le plus attaqué également, or si tu héberge tous tes sites sans les isolés les uns des autres le jour où tu en as 1 qui se fait pirater, ils vont tous l'être en même temps.

Regarde par exemple du côté des offres Simple Hosting de Gandi qui te permet très simplement de créer des instances site par site. C'est un peu plus cher que de prendre un dédié sur lequel tu mets tout en vrac mais le jour où tu te fais pirater, le nombre d'heures que tu vas passer pour tout réparer amortira largement les quelques euros dépensés pour avoir un service sécurisé.


Image

Re: Je ne parviens pas à créer une nouvelle Base de donnée en PHP

Posté : 06 févr. 2019, 17:33
par David10
Merci beaucoup pour ces réponses vraiment très détaillées! Chaque fois que j'installe un nouveau site WordPress, pas de souci, il créé une nouvelle Base de donnée pour chaque site WP.

Pour mes autres sites web non WP, que je programme moi-même en PHP, je créerai donc des tables pour chacun. Vous avez raison, je n'ai pas besoin d'une nouvelle basedd pour chacun de mes sites codés à la main (non WP).

Merci encore! J'avance bien. Merci à ce forum.