Главная » Полезные статьи » Язык PHP » PHP и MySQL на примере
Распечатать статью

PHP и MySQL на примере

PHP, обзорная статья о котором есть на нашем сер<?privet.php» —>

Ни коем случае не пытайтесь назначать файлы одного расширения сразу и на интерпретацию PHP, и SSI! Это приведет к непредсказуемым последствиям. Как вы уже догадались, подключение к MySQL производится двумя командами: сначала соединяемся с сервером MySQL, потом выбираем используемую базу данных, вот так:

MYSQL_CONNECT($hostname,$username,$password) OR DIE(«Не могу создать соединение «);

@mysql_select_db(«$dbName») or die(«Не могу выбрать базу данных «);

Переменные, отвечающие за пароль, логин и прочее, лучше задавать отдельно. Собака перед командой означает то, что сообщения об ошибках этой команды не выводятся. Не забудьте потом закрыть соединение с MySQL!

mysql_close();

Вот так. Теперь самое интересное. Как выясняется, вы можете довольно просто манипулировать содержимым базы данных с помощью команды mysql_query. Например, мы создаем простую формочку с полями name, email и password:

<html>
<body>

<form action=database.php method=post>
Your name:<br>
<input type=text name=name><br>
Your e-mail:<br>
<input type=text name=email><br>
Your password:<br>
<input type=password name=password><br>
<input type=checkbox name=del> Delete<br>
Drop?
<input type=text name=drop><br>
<input type=submit>
</form>
</body>
</html>

После этого мы должны создать файл database.php, обрабатывающий эти данные. Нетрудно догадаться, что в нем мы будем иметь готовые переменные name, email, password, drop, del, которые и предстоит обработать. Обработка будет заключаться в том, что если галочка «Del» не установлена, то значение в БД добавляется, иначе — удаляются все такие значения (должны полностью соответствовать все три основных поля).

<?
$username=»mixailo»;
$passwd=»passwd»;
$dbname=»clients»;
$hostname=»localhost»;

MYSQL_CONNECT ($hostname, $username, $passwd) or
die («Cannot connect to database…»);

@mysql_query(«create database clients»);

@mysql_select_db($dbname) or die («cannot select database»);

Это обычный выбор базы данных, интереса не представляет. Как известно, при попытке создать в БД таблицу, которая уже существует, сервер выдает ошибку. Поэтому можно довольно легко проверить таблицу на существование, и, если ее нет, создать ее:

mysql_query(«create table clients (name varchar(15), email varchar(35),
password varchar(15))») or ($err = MYSQL_QUERY(«select *
from clients») or die («can\’t create table»));

Теперь проверяем, отмечена ли галочка del

if (empty($del))

И если она пуста, то добавляем значения в таблицу

{
mysql_query(«insert into clients values (\’$name\’, \’$email\’,
\’$password\’)») or die («Cannot insert values»);
}

Иначе пытаемся удалить значения, точно соответствующие шаблону:

elseif (!empty($del))
{
mysql_query(«delete from clients where name=\’$name\’ and
email=\’$email\’ and password=\’$password\’») or die («Can\’t delete»);
}

Проверяем, написал ли пользователь в поле drop слово «drop», если да — удаляем из БД всю таблицу:

if ($drop==»drop»)
{
MYSQL_QUERY(«DROP TABLE clients») or
die («cannot drop»);
}

В принципе, теперь осталось только закрыть соединение и написать закрывающий тег ?>, но мы ведь хотим посмотреть, что у нас получилось? Делаем так:

$vopr=mysql_query(«select * from clients») or
die («No way. Can\’t select.»);
while ($line = mysql_fetch_array ($vopr))

{
print «<hr>»;
extract($line);
print»$name,$email,$password»;
}
print «<HR>»;
mysql_close();

?>

Вот и все, простая программа манипуляции базой данных готова. Замечу, что восклицательный знак перед функцией означает логическое НЕ, т.е. !empty($line) означает «НЕ (пустая ли переменная $line?)», и будет иметь значение ИСТИНА (TRUE), если $line непустая. Функция extract(аргумент) выделяет из выдачи MySQL, которую мы не можем просто так распечатать, переменные, соответствующие названиям полей в таблице; в нашем случае это $name, $email, $password — так и называются поля в таблице clients.

Источник:  npksv.ru

Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

Оставить комментарий

Похожие статьи