Форумы Якутск Онлайн

Форумы Якутск Онлайн (https://forum.ya1.ru/index.php)
-   Pages.ya1.ru (https://forum.ya1.ru/forumdisplay.php?f=105)
-   -   !!!MySQL!!! Как подключиться к MySQL через PHP(скопировал тему для тех, кого pages больше интересует) (https://forum.ya1.ru/showthread.php?t=47801)

vintwebpro 12.02.2011 00:22

!!!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("Извините, но произошла ошибка в сервере. Обратитесь к администратору.");

Просто вписываем вместо слова ЗАПРОС запрос, который надо выполнить.
Всё просто и легко!:blum:
Но пока я не показал, как вывести таблицу, как в HTML(напишу об этом позже), но есть временный способ убедиться во всём: для выполнения запроса, Вы просто можете войти в phpMyAdmin, выбрать нужную базу данных, нажать на вкладку "SQL", ввести/вставить запрос, нажать "Go" или "Пошли" - результат Вы увидите точно! :dirol:
Цитата:

Ну, а теперь то, чего многие ожидали узнать...
Выводим таблицу "на свежий воздух", а точнее в HTML...:give_hear
Код:

$_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 нужно, Вы, походу, догадались. :)
Спасибо за прочтение!!! :dance2:

Оценивайте, я сам научился специально для Вас ведь... :blum:

vintwebpro 12.02.2011 03:42

Кто бы такую документацию раньше меня сформулировал, я бы вообще всю жизнь его благодарил... O_o
Теперь придётся свою головку благодарить... =)

vintwebpro 12.02.2011 12:59

Ыыыыы... :D

Принимаю заказы по ActionScript:
http://forum.ya1.ru/showthread.php?p=1058989679

Принимаю заказы по GML:
http://forum.ya1.ru/showthread.php?p=1058990082

vintwebpro 12.02.2011 13:07

Цитата:

Сообщение от XtenD-Vas (Сообщение 1058990048)
Проверь скриптик конфига если не трудно
Код:

<?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...

vintwebpro 14.02.2011 22:23

ЗАКАЗЫ ПО JAVASCRIPT И PHP ПРИНИМАЮ НА БАРАХОЛКЕ:
http://market.ya1.ru/#id:138488
:)

Regis Filius 15.02.2011 09:11

Цитата:

Сообщение от XtenD-Vas (Сообщение 1058990048)
Проверь скриптик конфига если не трудно
Код:

<?php
define('HOST_MSSQL','localhost');
define('LOGIN_MSSQL','censored');
define('PASSWORD_MSSQL','censored);
define('_WORLD_','RF_World');
define('_ACC_','tbl_rfaccount');
?>

По идее должен выполнять запросы в БД , по восстановлению , но выводит ошибку при попытке записи в БД - SQL Injection Inside.

Кроме объявления констант этот код ничего не делает.

vintwebpro 15.02.2011 13:39

Цитата:

Сообщение от Regis Filius (Сообщение 1058991841)
Кроме объявления констант этот код ничего не делает.

хех константы только и видны
define define и ещё раз define! +1


Часовой пояс GMT +9, время: 07:56.

Powered by vBulletin® Version 3.6.3
Copyright ©2000 - 2024, Якутск-Online. Перевод: zCarot