Создание базы данных из PHP скрипта (страницы).
Для того, чтоб работал этот скрипт, у вас должна быть установлена база данных MySQL на локальном хосте, ну и конечно сам его величество PHP5, то же должен присутствовать. В первом варианте представлен, лишь сам скрипт создания тестовой базы данных, с именем lphp. Вариант 1
Листинг № 1 - Создание базы данных с помощью оператора CREATE из скрипт PHP.
Code
<?php
// Подключаемся к серверу,
// на котором будем создавать базу данных.
// В данном случаи это локальный кеомпьютер на котором вы работаете.
// Его имя всегда localhost (если его специально не изменили).
$HOST = "localhost"; // имя сервера
$USER = "root"; // пользователь базы данных MySQL
$PASS = ""; // пароль для доступа к серверу MySQL
$DB = "lphp"; // название создаваемой базы данных
if(!mysql_connect("$HOST", "$USER", "$PASS")) exit(mysql_error());
else {echo "";}
$r = mysql_query("CREATE DATABASE $DB");
if(!$r)exit(mysql_error());
if (!mysql_select_db($DB)) exit(mysql_error());
else{echo "";}
// устанавливаем кодировку
mysql_query('SET NAMES cp1251;');
echo "База данных успешно создана.";
?>
Вариант 2
index.php - это скрипт создающий базу данных.
create-tab.php - этот скрипт создаёт тестовую таблицу.
st.css - это файл стилей, используемый для представления двух страниц программы.
Поля отмеченные звёздочкой при создании базы данных, обязательны к заполнению. Так же хочу отметить, что таблица создаётся тестовая с одним полем. Я просто хотел показать сам процесс создания и как это может выглядеть. На самом деле вы можете дополнить скрипт по аналогии, дополнительными полями, для создания таблиц. Но на мой взгляд, для этого есть phpMyAdmin, который отлично справляется со своей задачей администрирования базы данных.
Работу с программой начинать строго с файла index.php, в противном случаи будет выведена ошибка и скрипт не сможет корректно работать. Листинг № 2 - Файл index.php создаёт базу данных.
Code
<?php
function crdb()
{
// Подключаемся к серверу,
// на котором будем создавать базу данных.
// В данном случаи это локальный кеомпьютер на котором вы работаете.
// Его имя всегда localhost (если его специально не изменили).
// имя сервера
$HOST = htmlspecialchars($_POST['name_server']);
// пользователь базы данных MySQL
$USER = htmlspecialchars($_POST['login']);
// пароль для доступа к серверу MySQL
$PASS = htmlspecialchars($_POST['pass']);
// название создаваемой базы данных
$DB = htmlspecialchars($_POST['name_db']);
// Файл конфигурации подключения создаётся автоматом,
// при удачном создании базы данных.
// Название файла конфигурации
$CONFIG = htmlspecialchars($_POST['confg']);
if(!empty($HOST) && !empty($USER) && !empty($DB) && !empty($CONFIG))
{
if(@!mysql_connect("$HOST", "$USER", "$PASS"))
{
return "<strong>Невозможно подключение к серверу.</strong><br> <br>
<p align=left><b> Возможные причины:</b><br>
1. Не правильно введён пароль. (по умолчанию пороль отсутствует)<br>
2. Имя сервера введено не верно.<br>
3. Логин доступа к серверу базы данных MySQL не идентифицирован.</p>";
}
$r = mysql_query("CREATE DATABASE $DB");
if(!$r)
{
return "<strong>Невозможно создать базу данных.</strong><br> <br>
<p align=left><b> Возможные причины:</b><br>
База данных уже существует, создана ранее.</p>";
}
?>
<?php
if (!mysql_select_db($DB))
{
return mysql_error();
}
mysql_query('SET NAMES cp1251;');
// Создаём конфигурационный файл
$data = "<?php
\$HOST = '$HOST';
\$USER = '$USER';
\$PASS = '$PASS';
\$DB = '$DB';
if(@!mysql_connect(\$HOST, \$USER, \$PASS)) exit(mysql_error());
if (@!mysql_select_db(\$DB)) exit(mysql_error());
mysql_query('SET NAMES cp1251;');
?>";
$hd = fopen($CONFIG,"w");
$e = fwrite($hd, $data);
if($e == -1)
{
return "Ошибка. Конфигурационный файл не создан.";
}
return "<span class='green'>База данных \"$DB\" успешно создана.</span><br>
<a href='create-tab.php?config=$CONFIG'>Далее</a>";
}
else
{
return "Не все поля заполнены.";
}
}
if($_POST['button'] == "Создать")
{
$err = crdb();
}
?>
<link href="/create/st.css" rel="stylesheet" type="text/css">
<form method="post" action="">
<div class="centers">
<table align="center" width="483" border="0" cellpadding="5" cellspacing="5">
<tr>
<td colspan="2" align="center"><strong> СОЗДАТЬ ТАБЛИЦУ </strong></td>
</tr>
<tr>
<td width="224" align="right"><span class='red'>*</span>Имя таблицы:</td>
<td width="227" align="left">
<input name="name_tab" type="text" value="testers" size="30" maxlength="45">
</td>
</tr>
<tr>
<td align="right"><span class='red'>*</span>Поле(столбец):</td>
<td>
<input name="pole" type="text" value="id_tester" size="20" maxlength="25">
</td>
</tr>
<tr>
<td align="right"><span class='red'>*</span>Тип данных: </td>
<td><label>
<select name="tip" id="select">
<option value="int" selected>int</option>
</select>
</label></td>
</tr>
<tr>
<td align="right">Дополнительно:</td>
<td><label>
<select name="dop" id="select2">
<option value="auto_increment">auto_increment </option>
<option value="0" selected>-</option>
</select>
</label></td>
</tr>
<tr>
<td align="right"> </td>
<td><label>
<input name="config" type="hidden" value="<?php echo $config ?>">
<input type="submit" name="cret" id="button" value="Создать" class="buts">
</label></td>
</tr>
<tr>
<td align="right"> </td>
<td> </td>
</tr>
<tr>
<td colspan="2" align="center"><span class='red'><?php echo $err; ?></span></td>
</tr>
</table>
</div>
</form>
Полную версию программы можно скачать, ссылка ниже. Выставлять весь скрипт не вижу смысла, разбирать его на экране монитора устно, вряд ли кто станет. Поэтому предлагаю скачать и протестировать всю программу локально на своём локальном хосте.