Skabelse af databaser til Joomla! websteder.

Tags:    php mysqli

Hej i gruppen :)

Jeg ønsker, at afvikle dette stykke kode i Linux med "PHP -f generate_databases_in_php.php"
Det skal foreløbigt kunne skabe 120 tomme databaser, til Joomla! installationer til web design og udvikling.
Jeg ønsker dog, at printe/skrive værdierne ud til et CSV spreadsheet indeholdende "database nummer," "database navn", "database brugernavn", "database password" og et tomt felt til manuelt at skrive navnet på Joomla! webstedet. Alt dette skal gøres for hver linie som beskriver hver database. Jeg kan dog ikke lige overskue det. Er der nogen, der kan overskue delen med skabelsen af CSV spreadsheetet, som vil kode det? :)

Mvh,
Thomas.

Database creation in PHP


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Database creation in PHP</title>
</head>

<body>

<?php

$servername = "localhost";
$username = "username";
$password = "password";
$startDB= 0;
$endDB= 119;
$PrefixDB="prefixDB";
$spreadsheetCSV="databases.csv";


for($LocalDB = $startDB; $LocalDB <= $endDB; $LocalDB++)
{


// Create connection

$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

//$LocalDB=system("mkpasswd 'date +%N' ");

$DatabaseName= ${PrefixDB} . ${LocalDB};

// Create DATABASE

$sql= "CREATE DATABASE " . "\'" . ${DatabaseName} . "\'" . ";";

if ($conn->query($sql) === TRUE) {
echo "DATABASE created successfully";
} else {
die ("Error creating DATABASE: " . $conn->error);
}

// Create USER
//$LocalUsername = substr(system("mkpasswd 'date +%N'"), 13);

$LocalUsername = ${DatabaseName};

$sql="CREATE USER " . "\'" . ${LocalUsername} . "\'" . "@" . "\'" . ${servername} . "\'" . ";";

if ($conn->query($sql) === TRUE) {
echo "USER created successfully";
} else {
die ("Error creating USER: " . $conn->error);
}
// Create PASSWORD

$LocalPassword = substr(system("mkpasswd 'date +%N'"), 13);

$sql="IDENTIFIED BY PASSWORD " . "\'" . ${LocalPassword} . "\'" . ";";

if ($conn->query($sql) === TRUE) {
echo "PASSWORD created successfully";
} else {
die ("Error creating PASSWORD: " . $conn->error);
}
// GRANT ALL ON LocalDB.* TO USERNAME

$sql = "GRANT ALL ON " . ${DatabaseName} . ".*" . " TO " . "\'" . ${LocalUsername} . "\'" . "@" . "\'" . ${servername} . "\'" . ";";

if ($conn->query($sql) === TRUE) {
echo "Granting created successfully";
} else {
die ("Error creating GRANTING: " . $conn->error);
}
$conn->close();

};

?>
</body>
</html>



3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Du kan bruge fputcsv.

Før din løkke åbner du filen:
Fold kodeboks ind/udPHP kode 


Inde i løkken, nær slutningen, kan du skrive dine rækker til filen:
Fold kodeboks ind/udPHP kode 


fputcsv har flere parametre hvis du selv vil bestemme kolonneseparatoren (,) og escape characteren..

Husk at lukke filen til allersidst uden for løkken:
Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 18.02.2015 17:08 af Bruger #14645
Takker Søren :)

Der kan dog opstå problemer med password'ets indhold i forhold til CSV- spreadsheet'et, da der fx. kan komme "\," i password'et. kigger dog på det først.
Password'et skulle derfor helst bestå af tal, små bogstaver, store bogstaver. helst intet andet, hvis du/I er enig?

bruger nu : $LocalPassword = substr(system("mkpasswd 'date +%N'"), 13);

Kender du/I en anden god password-generator i PHP?

Mvh,
Thomas







Kender du/I en anden god password-generator i PHP?

hvad er en god password-generator ?? jeg bruger selv

ref http://php.net/manual/en/function.shuffle.php
Fold kodeboks ind/udKode 





t