Problème requête mysqli
Résolu
Tzmagnum
Messages postés
126
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38483 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38483 Date d'inscription Statut Modérateur Dernière intervention -
A voir également:
- Problème requête mysqli
- L'opérateur ou l'administrateur a refusé la requête ✓ - Forum Windows
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
- Erreur de requete facebook - Forum Facebook
- Mysqli::real_connect(): (hy000/2002): aucune connexion n’a pu être établie car l’ordinateur cible l’a expressément refusée - Forum PHP
3 réponses
Bonjour
Fais un echo de ta variable $query puis serts toi de ce qui va s'afficher pour tester la requête directement dans ta bdd via phpmyadmin afin de t'assurer que la requête fonctionne .
Fais un echo de ta variable $query puis serts toi de ce qui va s'afficher pour tester la requête directement dans ta bdd via phpmyadmin afin de t'assurer que la requête fonctionne .
Voilà j'ai adapté en passant par 4 requètes et en mettant en echo query1 query2 query3 et query4
Cela me donne ça en affichage :
CREATE USER supraSupra@'%' IDENTIFIED BY test
GRANT USAGE ON * . * TO supraSupra@'%' IDENTIFIED BY test
CREATE DATABASE IF NOT EXISTS supraSupra DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_general_ci
GRANT ALL PRIVILEGES ON supraSupra . * TO supraSupra@'%'
Cela créer bien la table, mais pas l'utilisateur.
Merci d'avance de ton aide.
Voici le code adapté :
Cela me donne ça en affichage :
CREATE USER supraSupra@'%' IDENTIFIED BY test
GRANT USAGE ON * . * TO supraSupra@'%' IDENTIFIED BY test
CREATE DATABASE IF NOT EXISTS supraSupra DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_general_ci
GRANT ALL PRIVILEGES ON supraSupra . * TO supraSupra@'%'
Cela créer bien la table, mais pas l'utilisateur.
Merci d'avance de ton aide.
Voici le code adapté :
<?php //affichage des erreurs php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); require('config.php'); $username="supraSupra"; $password="test"; $query1 = "CREATE USER $username@'%' IDENTIFIED BY $password"; $res1 = mysqli_query($conn, $query1); $query2 = "GRANT USAGE ON * . * TO $username@'%' IDENTIFIED BY $password"; $res2 = mysqli_query($conn, $query2); $query3 = "CREATE DATABASE IF NOT EXISTS $username DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_general_ci"; $res3 = mysqli_query($conn, $query3); $query4 = "GRANT ALL PRIVILEGES ON $username . * TO $username@'%'"; $res4 = mysqli_query($conn, $query4); ?> <?php echo $query1; ?><br /> <?php echo $query2; ?><br /> <?php echo $query3; ?><br /> <?php echo $query4; ?><br />
J'ai réussi, merci.
Il manquait juste les ' ' autour des variables des mots de passes et cela devait être passé requête par requête.
Pour les personnes intérressées, voici le code complet, parcontre je sais pas si on peut faire plus propre, j'ai bien entendu donné des exemples de username, password et nom de domaine pour des raisons de sécurité.
Et je n'arrive pas à passer mes variables dans mon shell (voir code plus bas).
Code page Php :
Code Shell de heb.sh : (se trouvant dans le même dossier)
Avez-vous des idées pour améliorer le code, passer les variables dans mon shell et le rendre plus propre svp ?
Merci d'avance
Il manquait juste les ' ' autour des variables des mots de passes et cela devait être passé requête par requête.
Pour les personnes intérressées, voici le code complet, parcontre je sais pas si on peut faire plus propre, j'ai bien entendu donné des exemples de username, password et nom de domaine pour des raisons de sécurité.
Et je n'arrive pas à passer mes variables dans mon shell (voir code plus bas).
Code page Php :
<?php //affichage des erreurs php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); require('config.php'); $username="supraSupra"; $password="test"; $path = "/var/www/".$username; if (!is_dir($path)) { mkdir($path, 0777, true); } $vhost = $username.".conf"; $query_mysql_user = "CREATE USER $username@'%' IDENTIFIED BY '$password'"; $res_mysql_user = mysqli_query($conn, $query_mysql_user); $query_mysql_grant = "GRANT USAGE ON * . * TO $username@'%' IDENTIFIED BY '$password'"; $res_mysql_grant = mysqli_query($conn, $query_mysql_grant); $query_mysql_create_db = "CREATE DATABASE IF NOT EXISTS $username DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_general_ci"; $res_mysql_create_db = mysqli_query($conn, $query_mysql_create_db); $query_mysql_all_privilege = "GRANT ALL PRIVILEGES ON $username . * TO $username@'%'"; $res_mysql_all_privilege = mysqli_query($conn, $query_mysql_all_privilege); $query_ftp = "INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('$username', '1', '".hash('MD5', $password)."', '2001', '2001', '$path', '0', '0', '', '*', '0', '0')"; $res_ftp = mysqli_query($conn, $query_ftp); file_put_contents("/etc/apache2/sites-available/".$vhost, "<VirtualHost *:80>\r\n ServerName $username.test.be\r\n\r\n\r\nServerAdmin admin@test.be\r\n DocumentRoot $path\r\n\r\n\r\n ErrorLog /var/logs/apache2/error.log\r\n CustomLog /var/logs/apache2/access.log combined\r\n\r\n\r\n</VirtualHost>"); $output = exec("./heb.sh $vhost"); ?>
Code Shell de heb.sh : (se trouvant dans le même dossier)
#!/bin/bash sudo a2ensite $vhost sudo service apache2 reload
Avez-vous des idées pour améliorer le code, passer les variables dans mon shell et le rendre plus propre svp ?
Merci d'avance
Pour le script shell.. ce n'est pas ici qu'il faut Poser la question...
Mais bon.. voici de quoi y répondre
https://forums.commentcamarche.net/forum/affich-37619992-bash-les-arguments-parametres
Mais bon.. voici de quoi y répondre
https://forums.commentcamarche.net/forum/affich-37619992-bash-les-arguments-parametres
Il faudra certainement exécuter trois requetes distinctes dans le php.