Начал недавно учить PHP. Вроде ничего сложного. В интернете почитал, что для доступа к БД лучше не использовать mysql_*, а лучше PDO. И правильно.
Для тренировки решил сделать простую страничку для работы с БД - просто вводишь имя, страну и телефон, жмешь сабмит и скрипт должен самому себе отправить данные, обработать, записать в БД, считать их и вывести обновленные сведения, включая только что введенные. Вот как у меня получилось:
<?php
$lang="UK";
########## Підключаємось до БД ##################
$db_host='localhost';
$db_name='1';
$db_user='admin';
$db_pass='100500';
try {
$db = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
catch(PDOException $e) {
print "Помилка під’єднання до сервера БД";
echo $e->getMessage();
exit;
}
$q = $db->query('SELECT * FROM users');
$q->setFetchMode(PDO::FETCH_ASSOC);
?>
<table border="1">
<tr>
<td width="20%">Звуть</td>
<td width="20%">Років</td>
<td width="20%">Країна</td>
<td width="20%">Місто</td>
<td>Телефон</td>
</tr>
<?
while ($row = $q->fetch()) {
$year=date('Y') - $row[YEAR];
print "
<tr>
<td>$row[NAME]</td>
<td>$year</td>
<td>$row[COUNTRY_ID]</td>
<td>$row[CITY_ID]</td>
<td>$row[PHONE]</td>
</tr>";
}
?>
</table><br />
<h1 class="h1_head">Додати данні:</h1>
<?
print "
<form action='{$_SERVER['PHP_SELF']}' method='POST'>
<table>
<tr>
<td>Ім’я:</td>
<td><input type='text' name='NAME' maxlength='15' value='$value'></td>
</tr>
<tr>
<td>Рік народження:</td>
<td>
<select name='YEAR'>";
for ($i = 1960; $i <= 2004; $i++)
print "<option>$i</option>";
print " </select></td>
</tr>
<tr>
<td>Стать:</td>
<td><select name='SEX'>
<option>Чоловік</option>
<option>Жінка</option>
</td>
</tr>
<tr>
<td>Країна:</td>
<td><select name='COUNTRY'>";
$q = $db->query('SELECT * FROM countries');
$q->setFetchMode(PDO::FETCH_ASSOC);
while ($countrie = $q->fetch()) {
print "
<option>
$countrie[NAME_RU]
</option>
";
}
print "</select>
</td>
</tr>
<tr>
<td>Номер:</td>
<td><input type='text' name='PHONE' maxlength='10' value='$value'></td>
</tr>
<tr>
<td>Послання світу<br />(не більше 200 символів):</td>
<td><textarea rows=\"4\" maxlength=\"200\"></textarea></td>
</tr>
<tr>
<td></td>
<td>
<input type='submit' maxlength='15' class='btn btn-primary btn-large' value='Надіслати!'>
</td>
</tr>
</table>
</form>
";
############# Обробка масиву GET ###############
//$db->lastInsertId();
if (!isset($_POST['NAME']) or !isset($_POST['SEX']) or !isset($_POST['PHONE']) or !isset($_POST['PHONE']) or !isset($_POST['YEAR'])){
print "Помилка! Перевірте, чи всі поля заповнено та спробуйте ще раз!";
} else {
$num = $db->exec("INSERT INTO users ( ID, NAME, SEX, PHONE, CITY_ID, YEAR, COUNTRY_ID ) values ( '', '$_POST[NAME]', '$_POST[SEX]', '$_POST[PHONE]', '', '$_POST[YEAR]', '' )");
print "
<div class=\"alert alert-success\">
<button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button>
<h4>Готово!</h4>
</div>
";
}
?>
<? $db = null; ?>
</body>
</html>