Взаимодействие PHP и MySQL. Основные операторы MySQL.

Вообще, для обращения к базе данных MySQL можно использовать различные языки программирования, но мы с Вами, в рамках моих уроков по созданию сайтов будем пользоваться языком PHP.

Для того чтобы отправить запрос к базе данных 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"=>"Витя");
?>

Т.к таблица, имеет вид:
Таблица newtable

По-русски наш запрос 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.

Скачать коды урока