Чтение онлайн

на главную - закладки

Жанры

PHP. Разработка модуля комментариев для сайта
Шрифт:

<?php

error_reporting(E_ALL);//включаем вывод ошибок

/* 1. Создаем переменные подключения */

$host = "localhost"; /* Имя хоста */

$root = "root"; /* Имя пользователя БД */

$root_password = ""; /* Пароль к БД */

$db = "beseder"; /* название БД */

/* 2.

Создаем базу данных */

try {

$dsn = new PDO("mysql:host=$host", $root, $root_password);

$dsn->exec("CREATE DATABASE IF NOT EXISTS `$db` CHARACTER SET utf8 COLLATE utf8_general_ci;");

echo 'База создана (OK!)<br>' . ' Имя БД: ' . '<b>' . $db . '</b>' . '<br> Пользователь: ' . '<b>' . $root . '</b>';

} catch (PDOException $e) {

echo $e->getMessage;

echo $e->getLine;

exit('Ошибка при создании базы');

}

$dsn = null;//обнуляем подключение

/* 3. Формируем запросы для создания таблиц */

try {

$dsn=newPDO("mysql:host=$host;dbname=$db",$root,root_password);//подключаемся к созданной БД

$dsn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

/* Нумерация страниц */

$sql_page = "CREATE TABLE IF NOT EXISTS page (

id INT(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,

sayid int(11),

userid int(11),

pageid text

)";

//пользователи

$sql_users = "CREATE TABLE IF NOT EXISTS users (

id int(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,

login VARCHAR(15) NOT NULL,

password VARCHAR(256) NOT NULL,

youtext text NOT NULL,

email text NOT NULL,

img text NOT NULL,

activation int(11),

date int(11)

)";

//роль автора определение

$sql_role = "CREATE TABLE IF NOT EXISTS role (

id VARCHAR(255) NOT NULL PRIMARY KEY,

description VARCHAR(255)

)

DEFAULT CHARACTER SET utf8 ENGINE=InnoDB";

//роль автора id

$sql_authorrole = "CREATE TABLE IF NOT EXISTS authorrole (

authorid INT NOT NULL,

roleid VARCHAR(255) NOT NULL,

PRIMARY KEY (authorid, roleid)

)

DEFAULT CHARACTER SET utf8 ENGINE=InnoDB";

$sql_roledesc = "REPLACE INTO role (id, description) VALUES

('user', 'Контроль своих комментариев'),

('admin', 'Full control'),

('Site Administrator', 'Контроль комментариев')";

$sql_userole = "REPLACE INTO authorrole (authorid, roleid) VALUES

(1, 'admin')";

/*

Для комментариев */

$sql_say = "CREATE TABLE IF NOT EXISTS say (

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

saytext TEXT,

userid int(11),

saydate int(11)

) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB";

/* Для ответов на комментарии */

$sql_reply = "CREATE TABLE IF NOT EXISTS reply (

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

replytext TEXT,

userid int(11),

replyid int(11),

replydate int(11)

) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB";

/* 4. Создаем таблицы */

$dsn->exec($sql_users);

$dsn->exec($sql_authorrole);

$dsn->exec($sql_role);

$dsn->exec($sql_roledesc);

$dsn->exec($sql_userole);

$dsn->exec($sql_say);

$dsn->exec($sql_page);

$dsn->exec($sql_reply);

} catch (PDOException $e) {

echo $e->getMessage;

}

/* 5. Смайлы */

try {

$sql_smile = "CREATE TABLE IF NOT EXISTS smiles (

id INT(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,

smile text,

path text)";

$dsn->exec($sql_smile);

} catch (PDOException $e) {

echo $e->getMessage;

echo $e->getLine;

exit;

}

$dir = $_SERVER['DOCUMENT_ROOT'].'/chat/say/smiles/';//строим путь к папке smiles

$files1 = preg_grep('~\.(jpeg|jpg|png|gif)$~', scandir($dir));//делаем массив из картинок в папке smiles

try {

$sql = 'INSERT INTO smiles SET

smile = :smile,

path = :path';

$s = $dsn->prepare($sql);

foreach ($files1 as $val) {

$smile = pathinfo($val, PATHINFO_FILENAME); //получаем путь к смайлу

$smile = str_replace($smile, ":$smile:", $smile); //делаем условное обозначение смайла

$path = '/chat/say/smiles/'.$val;//строим наш путь к смайлу

$s->bindValue(':smile', $smile);

$s->bindValue(':path', $path);

$s->execute;

}

} catch (PDOException $e) {

echo $e->getMessage;

echo $e->getLine;

exit;

}

echo '<br>'.'Все таблицы успешно созданы';

В этом файле мы сначала включаем вывод всех сообщений об ошибках кодом: error_reporting(E_ALL). Это необходимо на этапе разработки, чтобы иметь возможность сразу выявлять и обрабатывать ошибки. После отладки всего приложения данную строку необходимо будет или удалить или закомментировать.

Поделиться:
Популярные книги

Эволюция мага

Лисина Александра
2. Гибрид
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эволюция мага

Искатель 1

Шиленко Сергей
1. Валинор
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Искатель 1

Хозяйственная помощница для идеала

Свободина Виктория
15. Помощница
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Хозяйственная помощница для идеала

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Как я строил магическую империю 7

Зубов Константин
7. Как я строил магическую империю
Фантастика:
попаданцы
постапокалипсис
аниме
фантастика: прочее
5.00
рейтинг книги
Как я строил магическую империю 7

Солнечный корт

Сакавич Нора
4. Все ради игры
Фантастика:
зарубежная фантастика
5.00
рейтинг книги
Солнечный корт

Случайная жена для лорда Дракона

Волконская Оксана
Фантастика:
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Случайная жена для лорда Дракона

Часовое имя

Щерба Наталья Васильевна
4. Часодеи
Детские:
детская фантастика
9.56
рейтинг книги
Часовое имя

Возвышение Меркурия. Книга 5

Кронос Александр
5. Меркурий
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 5

Кодекс Крови. Книга IХ

Борзых М.
9. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга IХ

Начальник милиции. Книга 4

Дамиров Рафаэль
4. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 4

Черный Маг Императора 12

Герда Александр
12. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 12

Дочь опальной герцогини

Лин Айлин
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Дочь опальной герцогини

Маленькая слабость Дракона Андреевича

Рам Янка
1. Танцы на углях
Любовные романы:
современные любовные романы
эро литература
5.25
рейтинг книги
Маленькая слабость Дракона Андреевича