Pages.ya1.ru О работе бесплатного хостинга Pages.ya1.ru |
|
!!!MySQL!!! Как подключиться к MySQL через PHP |
|
12.02.2011, 00:22
|
#1
|
Участник
vintwebpro вне форума
Регистрация: 20.10.2010
Адрес: г. Якутск
Сообщений: 300
|
!!!MySQL!!! Как подключиться к MySQL через PHP
Спасибо, что зашли! Как раз узнаете, что надо делать во-первых, чтобы подключиться к Базе Данных через PHP, что надо делать, чтобы вывести таблицу товаров либо прочих предметов через PHP из MySQL( всё делаем с чистого листа, без всяческих движков)
Цитата:
Во-первых:
Создаём файл mysql_connection.php на сервере. Вписываем в него:
Код:
<?php
# Type="MYSQL"
# HTTP="true"
$db_hostname = "СЕРВЕР";
$db_database = "БАЗА_ДАННЫХ";
$db_username = "ПОЛЬЗОВАТЕЛЬ";
$db_password = "ПАРОЛЬ";
$_mysqlconnection = mysql_pconnect($db_hostname, $db_username, $db_password) or trigger_error(mysql_error(),E_USER_ERROR);
?>
Пишем вместо СЕРВЕР сервер(хост), на котором стоит База Данных(на домашних серверах: localhost); пишем вместо БАЗА_ДАННЫХ название базы данных, которую будем использовать позже в своих целях; пишем вместо ПОЛЬЗОВАТЕЛЬ имя пользователя базы данных(обычно, бывает дело, когда используют то же название, какое у базы данных, то есть база данных иногда содержит имя пользователя); пишем вместо ПАРОЛЬ пароль пользователя SQL. Таким образом, MySQL выполняет подключение pconnect...
|
Цитата:
Как подключаться к Базе Данных через другой PHP-скрипт при наличии mysql_connection.php, для послания запросов в неё?
Создаём, к примеру, файл test.php. Вписываем в него:
Код:
<?php require_once("mysql_connection.php"); mysql_select_db($db_database, $_mysqlconnection); ?>
Вроде бы просто! Теперь в test.php можно делать запросы к БД с легкостью. Но теперь беда в другом: как?
|
Цитата:
Какие запросы существуют? (специальный QUICK REFFERENCE для Вас, пока что SELECT)
Открываем известный нам файл test.php, в котором присутствует подключение к Базе Данных.
Обсудим любимый всеми веб-мастерами выбор колонок и строк:SELECT
SELECT КОЛОНКИ FROM ТАБЛИЦА - выбирает особые колонки из нужной таблицы(чтобы выбрать все колонки, вставьте звёздочку вместо КОЛОНКИ).
А вот алгоритмы данной функции:
[WHERE УСЛОВИЕ(Я)] - алгоритм(ГДЕ УСЛОВИЕ) показывает, что он может выбрать особые строки, где, например, содержимое колонки выбранной строки равно заданному содержимому.
[ORDER BY КОЛОНКА [ASC|DESC] - алгоритм(УПОРЯДОЧИТЬ ПО КОЛОНКА [АЛФАВИТНЫЙ|ПРОТИВОАЛФАВИТНЫЙ] ПОРЯДОК) показывает, что он может выбрать строки в [алфавитном/противоалфавитном] порядке заданной колонки.
Примеры:
1. Показ пользователей, которые забанены:
SELECT `nick`, `banned` FROM `users` WHERE `banned` = 1
2. Показ в алфавином порядке все товары:
SELECT `name` FROM `products` ORDER BY `name` ASC
Теперь посмотрим, на что способны DELETE и DROP TABLE. Смотря в словарь мы логично замечаем, что эти функции выполняют роль освобождения Базы Данных - всё правильно!
DELETE FROM ТАБЛИЦА - уничтожает из нужной таблицы все строки, не удаляя колонок.
Есть один знакомый алгоритм этой функции:
[WHERE УСЛОВИЕ(Я)] - алгоритм(ГДЕ УСЛОВИЕ) показывает, что он может уничтожить особые строки, где, например, содержимое колонки выбранной строки равно заданному содержимому.
DROP TABLE ТАБЛИЦА(Ы) - уничтожает таблицу и её данные из Базы Данных(можно выбрать несколько таблиц)
Примеры:
1. Удаляем все новости из Базы Данных, которые относятся к категории с идентификатором 2:
DELETE FROM `news` WHERE `category` = '2'
2. Уничтожаем таблицу с баннерами:
DROP TABLE `banners`
|
Цитата:
Мы изучили, какие запросы бывают, а теперь надо бы подумать, как выполнить его на PHP...
Тут даже думать не надо! Всего-лишь вписываем в test.php перед ?> следующее:
Код:
$sql = "ЗАПРОС";
mysql_query($_sql, $_connection) or die("Извините, но произошла ошибка в сервере. Обратитесь к администратору.");
Просто вписываем вместо слова ЗАПРОС запрос, который надо выполнить.
Всё просто и легко!
Но пока я не показал, как вывести таблицу, как в HTML(напишу об этом позже), но есть временный способ убедиться во всём: для выполнения запроса, Вы просто можете войти в phpMyAdmin, выбрать нужную базу данных, нажать на вкладку "SQL", ввести/вставить запрос, нажать "Go" или "Пошли" - результат Вы увидите точно!
|
Цитата:
Ну, а теперь то, чего многие ожидали узнать...
Выводим таблицу "на свежий воздух", а точнее в HTML...
Код:
$_sql = "SELECT * FROM users WHERE `sex` = 'W' and `banned` = '1'";
$_query = mysql_query($_sql, $_connection1) or die("Извините, произошёл сбой в базе данных. Обратитесь к администратору...");
$_rowquery = mysql_fetch_assoc($_query);
$_numquery = mysql_num_rows($_query);
$i = 0;
echo "<table width='100%' cellspacing='0' cellpadding='0'>";
while ($i < $_numquery) {
mysql_free_result($_query);
echo "<tr><td bgcolor='#FFDDFF'>" . $_rowquery['nick'] . "</td></tr>";
$i++;
$_sql = "SELECT * FROM users WHERE `sex` = 'W' and `banned` = '1' LIMIT $i, 1";
$_query = mysql_query($_sql, $_connection1) or die("Извините, произошёл сбой в базе данных. Обратитесь к администратору...");
$_rowquery = mysql_fetch_assoc($_query);
}
mysql_free_result($_query);
echo "</table>";
Логика ясна... Скрипт отображает забаненных женщин. :D Для этого использовался цикл WHILE, который мне больше всего нравится, а почему? Да потому что в нём можно установить обычное условие, при котором и будет всё делаться... FOR было бы не очень хорош для вывода колонок, потому что число $i плюсуется именно В СЕРЕДИНЕ цикла, а точнее перед тем, как дать скрипту прочесть следующую строку... Вы заметили, что запрос копируется в начале и в цикле(не трогая добавки "LIMIT $i, 1") - так всегда!
Никогда не убирайте добавку "LIMIT $i, 1" в запросе цикла, т.к. она выдаёт нам следующую строку в таблице! А для чего число $i нужно, Вы, походу, догадались.
|
Спасибо за прочтение!!!
Оценивайте, я сам научился специально для Вас ведь...
Последний раз редактировалось vintwebpro, 12.02.2011 в 14:49.
|
|
|
|
12.02.2011, 03:42
|
#2
|
Участник
vintwebpro вне форума
Регистрация: 20.10.2010
Адрес: г. Якутск
Сообщений: 300
|
Кто бы такую документацию раньше меня сформулировал, я бы вообще всю жизнь его благодарил... O_o
Теперь придётся свою головку благодарить...
|
|
|
12.02.2011, 12:59
|
#3
|
Участник
vintwebpro вне форума
Регистрация: 20.10.2010
Адрес: г. Якутск
Сообщений: 300
|
Последний раз редактировалось vintwebpro, 12.02.2011 в 13:53.
|
|
|
14.02.2011, 22:23
|
#4
|
Участник
vintwebpro вне форума
Регистрация: 20.10.2010
Адрес: г. Якутск
Сообщений: 300
|
ЗАКАЗЫ ПО JAVASCRIPT И PHP ПРИНИМАЮ НА БАРАХОЛКЕ:
http://market.ya1.ru/#id:138488
|
|
|
12.02.2011, 13:07
|
#5
|
Участник
vintwebpro вне форума
Регистрация: 20.10.2010
Адрес: г. Якутск
Сообщений: 300
|
Цитата:
Сообщение от XtenD-Vas
Проверь скриптик конфига если не трудно
Код:
<?php
define('HOST_MSSQL','localhost');
define('LOGIN_MSSQL','censored');
define('PASSWORD_MSSQL','censored);
define('_WORLD_','RF_World');
define('_ACC_','tbl_rfaccount');
?>
По идее должен выполнять запросы в БД , по восстановлению , но выводит ошибку при попытке записи в БД - SQL Injection Inside.
|
MSSQL? O_o Это документация по MySQL...
|
|
|
15.02.2011, 09:11
|
#6
|
SuperVisor TF2
Regis Filius вне форума
Регистрация: 21.06.2008
Сообщений: 623
|
Цитата:
Сообщение от XtenD-Vas
Проверь скриптик конфига если не трудно
Код:
<?php
define('HOST_MSSQL','localhost');
define('LOGIN_MSSQL','censored');
define('PASSWORD_MSSQL','censored);
define('_WORLD_','RF_World');
define('_ACC_','tbl_rfaccount');
?>
По идее должен выполнять запросы в БД , по восстановлению , но выводит ошибку при попытке записи в БД - SQL Injection Inside.
|
Кроме объявления констант этот код ничего не делает.
|
|
|
15.02.2011, 13:39
|
#7
|
Участник
vintwebpro вне форума
Регистрация: 20.10.2010
Адрес: г. Якутск
Сообщений: 300
|
Цитата:
Сообщение от Regis Filius
Кроме объявления констант этот код ничего не делает.
|
хех константы только и видны
define define и ещё раз define! +1
|
|
|
Опции темы |
|
Опции просмотра |
Комбинированный вид
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +9, время: 16:12. |
|
|