Делать нехуй, напишу основное насчет скули для, подчеркиваю, новичков, чтобы проще и быстрее можно было написать свое первое детище
Первое правило - забыли про расширение mysql - оно устарело и неактуально, используем только mysqli, версия php должна быть выше 5
1. Подключение к БД
Для того, чтобы работать с БД, нужно к ней подключиться, следуя нашей цели узнаем у хостера следующие данные: хост(чаще всего localhost, за редким исключением), название БД(создаете сами или просите хостера), логин и пароль БД аналогично названию указываете сами при создании или узнаете у хостера.
Затем в своем php файле создаете подключение:
Код:
$db = new mysqli_connect("localhost","login","pass","dbname") or die("Не подключились к БД, причина: ". mysqli_error($db));
Где: $db - новое подключение, через эту переменную мы будем обращаться к базе
Данные в скобках - ваши, см. выше
Конструкция die будет в случае ошибки отображать причину, почему не удалось подключиться к БД
2. Запросы к БД
Взаимодействие сайта с БД происходит посредством запросов к последней.
Возьмем за основу следующую структуру БД, для простоты таблица будет называться НАЗВАНИЕТАБЛИЦЫ, наполнена она так:
ID - RATING - MONEY
1 - 5 - 10
2 - 7 - 5
3 - 22 - 105
4 - 28 - 30
Все три столбца - int, т.е числовые. При этом значение ID имеет флажок auto_increment
2.1 Запрос выглядит, например, так:
Код:
mysqli_query($db, "select * from НАЗВАНИЕТАБЛИЦЫ where money > 100 and rating = 10");
Или так:
$db->query("
select * from НАЗВАНИЕТАБЛИЦЫ where money > 100 and rating = 10");
Где $db - наше подключение, названиетаблицы - название таблицы, параметры после where - столбцы в таблице.
В данном случае выполняется выборка по следующим критериям: выбираем строки из таблицы, где столбец деньги больше ста, а столбец рейтинг больше десяти. Соответственно нашей таблице, выбрано будет одно значение с идентификационным номером 3.
В случае, если нужно просто выбрать все строки для последующей работы с ними, конструкция where убирается.
Кроме выборки мы попробуем обновлять, удалять данные в таблице, разумеется команд для обращения к БД очень много, но для новичков мы ограничимся вышеперечисленными
2.2 Обновление значения столбца в базе данных
Для обновления значения используется запрос UPDATE, изменим значение столбца денег в строке 3:
Код:
$db->query("update НАЗВАНИЕТАБЛИЦЫ set money = 5 where id = 3");
Кроме того, мы можем производить операции прямо со значением в базе данных, например, если идет списание баланса за какую-то услугу:
Код:
mysqli_query($db,"update НАЗВАНИЕТАБЛИЦЫ set 'money'='money' - 5 where id=3");
В данном случае из текущего значения столбца денег в строке 3 мы вычтем число 5.
Я специально использовал разные варианты отправки запросов в обоих случаях, чтобы показать, что можно писать запрос и так, и так, кому как удобнее. В последнем случае так же обязательно вешать на название столбца кавычки, кроме того, в случае, если редактируемая информация - текст, необходимо также использовать кавычки.
2.3 Удаление данных
Для удаления используется команда DELETE, запрос строится следующим образом:
Код:
mysqli_query($db,"delete from НАЗВАНИЕТАБЛИЦЫ where money =0");
Так мы удалим из таблицы все строки, где сумма денег 0. Если мы не будем использовать конструкцию where, таблица очистится полностью, будьте осторожны с этим.
3. О безопасности
Злоумышленник может при обращении к сайту вводить вместо данных (например, имени) запросы к БД и БД может их выполнить. Следовательно, необходимо защитить свои запросы от этого. Лучше сделать отдельную собственную функцию, которую впоследствии будет использовать проще, чем постоянно обращаться напрямую.
Речь идет о функции mysqli_real_escape_string.
В своем конфигурационном файле ниже соединения дописываем следующее:
Код:
function re($data) {
$m = mysqli_real_escape_string($db, $data);
return $m;
}
При этом переменную $db необходимо объявить глобальной.
Данная функция будет обрабатывать данные и экранировать запросы к БД, если они есть, таким образом, в базу не получится въебать зловредный запрос.
Создав данную функцию, нам теперь необходимо обрабатывать входящие от юзера данные, следующим образом:
Допустим, пользователь отправляет данные через форму методом пост-запроса, принимаем, присваиваем переменную и сразу обрабатываем:
Код:
$money = re($_POST["money"]);
Теперь мы можем безопасно отправить в базу запрос с полученными от юзера данные, пример:
Код:
mysqli_query($db,"update НАЗВАНИЕТАБЛИЦЫ set money = $money where id = 1");
Таким образом, мы установили столбцу деньги в строке 1 новое значение, полученное от пользователя, при этом избежали возможных sql-инъекций.
В итоге у нас получился следующий файл config.php:
Код:
<? // подключение
$db = new mysqli_connect("localhost","login","pass","dbname") or die("Не подключились к БД, причина: ". mysqli_error($db));
// объявляем глобальной
global $db;
// дописываем функцию
function re($data) {
$m = mysqli_real_escape_string($db, $data);
return $m;
}
И следующее нужно дописать в файл index.php в самый верх
<? include_once 'config.php';
// далее можем работать с базой данных, используя вышеперечисленных команды
?>
Первое правило - забыли про расширение mysql - оно устарело и неактуально, используем только mysqli, версия php должна быть выше 5
1. Подключение к БД
Для того, чтобы работать с БД, нужно к ней подключиться, следуя нашей цели узнаем у хостера следующие данные: хост(чаще всего localhost, за редким исключением), название БД(создаете сами или просите хостера), логин и пароль БД аналогично названию указываете сами при создании или узнаете у хостера.
Затем в своем php файле создаете подключение:
Код:
$db = new mysqli_connect("localhost","login","pass","dbname") or die("Не подключились к БД, причина: ". mysqli_error($db));
Где: $db - новое подключение, через эту переменную мы будем обращаться к базе
Данные в скобках - ваши, см. выше
Конструкция die будет в случае ошибки отображать причину, почему не удалось подключиться к БД
2. Запросы к БД
Взаимодействие сайта с БД происходит посредством запросов к последней.
Возьмем за основу следующую структуру БД, для простоты таблица будет называться НАЗВАНИЕТАБЛИЦЫ, наполнена она так:
ID - RATING - MONEY
1 - 5 - 10
2 - 7 - 5
3 - 22 - 105
4 - 28 - 30
Все три столбца - int, т.е числовые. При этом значение ID имеет флажок auto_increment
2.1 Запрос выглядит, например, так:
Код:
mysqli_query($db, "select * from НАЗВАНИЕТАБЛИЦЫ where money > 100 and rating = 10");
Или так:
$db->query("
select * from НАЗВАНИЕТАБЛИЦЫ where money > 100 and rating = 10");
Где $db - наше подключение, названиетаблицы - название таблицы, параметры после where - столбцы в таблице.
В данном случае выполняется выборка по следующим критериям: выбираем строки из таблицы, где столбец деньги больше ста, а столбец рейтинг больше десяти. Соответственно нашей таблице, выбрано будет одно значение с идентификационным номером 3.
В случае, если нужно просто выбрать все строки для последующей работы с ними, конструкция where убирается.
Кроме выборки мы попробуем обновлять, удалять данные в таблице, разумеется команд для обращения к БД очень много, но для новичков мы ограничимся вышеперечисленными
2.2 Обновление значения столбца в базе данных
Для обновления значения используется запрос UPDATE, изменим значение столбца денег в строке 3:
Код:
$db->query("update НАЗВАНИЕТАБЛИЦЫ set money = 5 where id = 3");
Кроме того, мы можем производить операции прямо со значением в базе данных, например, если идет списание баланса за какую-то услугу:
Код:
mysqli_query($db,"update НАЗВАНИЕТАБЛИЦЫ set 'money'='money' - 5 where id=3");
В данном случае из текущего значения столбца денег в строке 3 мы вычтем число 5.
Я специально использовал разные варианты отправки запросов в обоих случаях, чтобы показать, что можно писать запрос и так, и так, кому как удобнее. В последнем случае так же обязательно вешать на название столбца кавычки, кроме того, в случае, если редактируемая информация - текст, необходимо также использовать кавычки.
2.3 Удаление данных
Для удаления используется команда DELETE, запрос строится следующим образом:
Код:
mysqli_query($db,"delete from НАЗВАНИЕТАБЛИЦЫ where money =0");
Так мы удалим из таблицы все строки, где сумма денег 0. Если мы не будем использовать конструкцию where, таблица очистится полностью, будьте осторожны с этим.
3. О безопасности
Злоумышленник может при обращении к сайту вводить вместо данных (например, имени) запросы к БД и БД может их выполнить. Следовательно, необходимо защитить свои запросы от этого. Лучше сделать отдельную собственную функцию, которую впоследствии будет использовать проще, чем постоянно обращаться напрямую.
Речь идет о функции mysqli_real_escape_string.
В своем конфигурационном файле ниже соединения дописываем следующее:
Код:
function re($data) {
$m = mysqli_real_escape_string($db, $data);
return $m;
}
При этом переменную $db необходимо объявить глобальной.
Данная функция будет обрабатывать данные и экранировать запросы к БД, если они есть, таким образом, в базу не получится въебать зловредный запрос.
Создав данную функцию, нам теперь необходимо обрабатывать входящие от юзера данные, следующим образом:
Допустим, пользователь отправляет данные через форму методом пост-запроса, принимаем, присваиваем переменную и сразу обрабатываем:
Код:
$money = re($_POST["money"]);
Теперь мы можем безопасно отправить в базу запрос с полученными от юзера данные, пример:
Код:
mysqli_query($db,"update НАЗВАНИЕТАБЛИЦЫ set money = $money where id = 1");
Таким образом, мы установили столбцу деньги в строке 1 новое значение, полученное от пользователя, при этом избежали возможных sql-инъекций.
В итоге у нас получился следующий файл config.php:
Код:
<? // подключение
$db = new mysqli_connect("localhost","login","pass","dbname") or die("Не подключились к БД, причина: ". mysqli_error($db));
// объявляем глобальной
global $db;
// дописываем функцию
function re($data) {
$m = mysqli_real_escape_string($db, $data);
return $m;
}
И следующее нужно дописать в файл index.php в самый верх
<? include_once 'config.php';
// далее можем работать с базой данных, используя вышеперечисленных команды
?>