Взаимодействие PHP и MySQL. Основные операторы MySQL.
Для того чтобы отправить запрос к базе данных MySQL, сделать выборку(вывод) значений, обновить информацию в базе, необходимо сделать подключение. В этом нам поможет функция mysql_connect().
Чтобы все было аккуратно и красиво, введем переменные с параметрами для соединения с базой данных MySQL, и произведем подключение к базе данных MySQL с помощью функции mysql_connect():
<? $dbhost = 'localhost'; // Адрес для подключения $dbname = 'lessons'; // Имя базы данных $dbuser = 'root'; // Пользователь базы данных $dbpass = ''; // Пароль базы данных // Используем функцию mysql_connect $link = mysql_connect($dbhost, $dbuser, $dbpass); // Функция mysql_select_db выбирает базу данных по ее имени. mysql_select_db($dbname, $link); ?>
На данном этапе, множество новичков допускают ошибку, т.к. незнают что нужно установить правильную кодировку вывода из MySQL. И в итоге получается множество вопросов на форумах "Почему выводяться кракозябры из БД".
Делается это с помощью функций установки кодировки для соединения. Пишем данные строки сразу после выбора базны данных (mysql_select_db()):
mysql_query("SET NAMES 'utf8'"); mysql_query("SET CHARACTER SET 'utf8'"); mysql_query("SET SESSION collation_connection = 'utf8_general_ci'");
Теперь, когда Вы подключены к базе данных MySQL, попробуем основные операторы для запроса к БД MySQL. Будем работать с нашей базой - lessons, которую мы создали в уроке Базы данных MySQL.
INSERT INTO
Оператор INSERT INTO - необходим для вставки значений в таблицу. Наглядно добавление значений в таблицу newtable, которую мы создали с вами в уроке Базы данных MySQL будет выглядеть так(незабудте перед этим подключиться к базе, как я показал выше):
<? $dbhost = 'localhost'; // Адрес для подключения $dbname = 'lessons'; // Имя базы данных $dbuser = 'root'; // Пользователь базы данных $dbpass = ''; // Пароль базы данных // Используем функцию mysql_connect $link = mysql_connect($dbhost, $dbuser, $dbpass); // Функция mysql_select_db выбирает базу данных по ее имени. mysql_select_db($dbname, $link); mysql_query("SET NAMES 'utf8'"); mysql_query("SET CHARACTER SET 'utf8'"); mysql_query("SET SESSION collation_connection = 'utf8_general_ci'"); // В переменную $query будет записываться true или false // в зависимости от того выполнился запрос или нет. $query = mysql_query("INSERT INTO `newtable` VALUES('1' ,'Вася')"); // Если запрос выполнился успешно if($query) { echo 'Запись добавлена!'; } else { echo 'Произошла ошибка'; } ?>
Переведем на русский язык запрос INSERT INTO `newtable` VALUES('1' ,'Вася'):
Вставить в таблицу 'newtable', значения('1', 'Вася').
Это самый простой пример оператора INSERT INTO.
UPDATE
Оператор UPDATE - изменяет существующие значения в таблице. Также как и с INSERT INTO, приступим сразу к примеру:
<? $dbhost = 'localhost'; // Адрес для подключения $dbname = 'lessons'; // Имя базы данных $dbuser = 'root'; // Пользователь базы данных $dbpass = ''; // Пароль базы данных // Используем функцию mysql_connect $link = mysql_connect($dbhost, $dbuser, $dbpass); // Функция mysql_select_db выбирает базу данных по ее имени. mysql_select_db($dbname, $link); mysql_query("SET NAMES 'utf8'"); mysql_query("SET CHARACTER SET 'utf8'"); mysql_query("SET SESSION collation_connection = 'utf8_general_ci'"); // В переменную $query будет записываться true или false // в зависимости от того выполнился запрос или нет. $query = mysql_query("UPDATE `newtable` SET `name`='Витя' WHERE `id`='1'"); // Если запрос выполнился успешно if($query) { echo 'Запись изменена!'; } else { echo 'Произошла ошибка'; } ?>
А теперь переведем UPDATE `newtable` SET `name`='Витя' WHERE `id`='1':
Изменить табицу 'newtable' установить значение поля 'name'='Витя', где значение поля 'id'='1'
SELECT FROM
Оператор SELECT FROM - делает выборку значений из заданной таблицы. Пример:
<? $dbhost = 'localhost'; // Адрес для подключения $dbname = 'lessons'; // Имя базы данных $dbuser = 'root'; // Пользователь базы данных $dbpass = ''; // Пароль базы данных // Используем функцию mysql_connect $link = mysql_connect($dbhost, $dbuser, $dbpass); // Функция mysql_select_db выбирает базу данных по ее имени. mysql_select_db($dbname, $link); mysql_query("SET NAMES 'utf8'"); mysql_query("SET CHARACTER SET 'utf8'"); mysql_query("SET SESSION collation_connection = 'utf8_general_ci'"); // В переменную $query будет записываться true или false // в зависимости от того выполнился запрос или нет. $query = mysql_query("SELECT * FROM `newtable` WHERE `id`='1'"); // Если запрос выполнился успешно if($query) { // mysql_fetch_assoc нужна для преобразования данных в массив $arr = mysql_fetch_assoc($query); echo $arr['name']; // Выведет "Витя" } else { echo 'Произошла ошибка'; } ?>
Для начала разберем место в коде, где используется функция mysql_fetch_assoc.
Она преобразует нашу выборку в ассоциативный массив. В нашем случае, он будет выглядить так:
<? array("id"=>"1", "name"=>"Витя"); ?>
Т.к таблица, имеет вид:

По-русски наш запрос SELECT * FROM `newtable` WHERE `id`='1' будет читаться так:
Выбрать ВСЕ из таблицы 'newtable', где поле 'id'='1'
Опять же, это простейший случай SELECT FROM, более сложные случаи мы рассмотрим позже, а если Вам всетаки нужен запрос SELECT FROM, то можете написать мне на email.
DELETE FROM
Оператор DELETE FROM - удаляет строку, или строки из таблицы. Пример DELETE FROM:
<? $dbhost = 'localhost'; // Адрес для подключения $dbname = 'lessons'; // Имя базы данных $dbuser = 'root'; // Пользователь базы данных $dbpass = ''; // Пароль базы данных // Используем функцию mysql_connect $link = mysql_connect($dbhost, $dbuser, $dbpass); // Функция mysql_select_db выбирает базу данных по ее имени. mysql_select_db($dbname, $link); mysql_query("SET NAMES 'utf8'"); mysql_query("SET CHARACTER SET 'utf8'"); mysql_query("SET SESSION collation_connection = 'utf8_general_ci'"); // В переменную $query будет записываться true или false // в зависимости от того выполнился запрос или нет. $query = mysql_query("DELETE FROM `newtable` WHERE `name`='Витя'"); // Если запрос выполнился успешно if($query) { echo 'Запись удалена!'; } else { echo 'Произошла ошибка'; } ?>
Переведем запрос DELETE FROM `newtable` WHERE `name`='Витя':
Удалить значение из таблицы 'newtable', где значение поля 'name'='Витя'
Данный запрос удалит все строки, где значение поля 'name', равно 'Витя'.
INSERT INTO, UPDATE, SELECT FROM, DELETE FROM - 4 основных оператора синтаксиса MySQL.
Скачать коды урока