Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

SQL – запросы и их обработка с помощью PHP

PHP

 

 

Назначение PHP-интерпретатора

PHP-скрипты обычно обрабатываются интерпретатором в порядке, обеспечивающем кроссплатформенность разработанного приложения:

  1. лексический анализ исходного кода и генерация лексем,
  2. синтаксический анализ полученных лексем,
  3. генерация байт-кода,
  4. выполнение байт-кода интерпретатором (без создания исполняемого файла).

 

Для увеличения быстродействия приложений возможно использование специального программного обеспечения, так называемых акселераторов. Принцип их работы заключается в кэшировании однажды сгенерированного байт-кода в памяти и/или на диске, таким образом, из процесса работы приложения исключаются этапы 1—3, что в общем случае ведёт к значительному ускорению работы.

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

 

Расширения

Интерпретатор состоит из ядра и подключаемых модулей, «расширений», представляющих собой динамические библиотеки. Расширения позволяют дополнить базовые возможности языка, предоставляя возможности для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и тому подобным. Любой желающий может разработать своё собственное расширение и подключить его. Существует огромное количество расширений, как стандартных, так и созданных сторонними компаниями и энтузиастами, однако в стандартную поставку входит лишь несколько десятков хорошо зарекомендовавших себя. Множество расширений доступно в репозитории PECL.

 

Параметры настройки

Интерпретатор PHP имеет специальный конфигурационный файл — php.ini, содержащий множество настроек, изменение которых влияет на поведение интерпретатора. Имеется возможность отключить использование ряда функций, изменить ограничения на используемую скриптом оперативную память, время выполнения, объём загружаемых файлов, настроить журналирование ошибок, работу с сессиями и почтовыми сервисами, подключить дополнительные расширения, а также многое другое. Возможно дробление большого конфигурационного файла на части. Например, широко распространена практика вынесения настроек расширений в отдельные файлы. Параметры интерпретатора могут быть переопределены в файлах конфигурации HTTP-сервера (например,.htaccess в Apache) или в самом скрипте во время выполнения при помощи команды ini_set.

 

Режимы запуска интерпретатора (SAPI)

SAPI - это внешний уровень абстракции, предназначенный для встраивания интерпретатора в другие приложения и отвечает за его работу (запуск, остановка, передача скриптов на исполнение, досуп к внешним данным). Существует насколько основных SAPI определяющих способы запуска и использования PHP:

  1. В качестве модуля к веб-серверу (например, для Apache модуль mod_php). В этом случае интерпретатор PHP выполняется в окружении процесса веб-сервера. Веб-сервер управляет количеством запущенных процессов PHP и сообщает им какие скрипты требуется исполнить.
  2. CGI SAPI. Использование CGI подразумевает запуск нового процесса для обработки каждого запроса. Для исполнения PHP скрипта веб-сервер запускает./php-cgi /path/to/script.php.

 

  1. FPM SAPI, известный как php-fpm - это другая реализация протокола FastCGI. Создан изначально Андреем Нигматулиным как отдельный патч для использования в социальной сети Badoo. Данная реализация решала ряд проблем, которые мешали использованию CGI/FastCGI SAPI.

 

  1. В качестве скрипта командной строки (CLI SAPI), являющегося исполняемым файлом, который вызывается пользователем из командной строки; скрипт выполняется в окружении вызвавшего пользователя.

 

 

Начиная с версии PHP 5.4.0 в CLI SAPI появилась возможность запуска PHP как отдельного HTTP сервера. Однако, этот режим предназначен исключительно для разработки, так как запускает только один процесс интерпретатора и выполняет все запросы исключительно последовательно.

 

 

Альтернативные реализации

В силу популярности языка PHP и желания увеличить быстродействие основанных на нём веб-приложений, создано несколько альтернативных компиляторов, близких к PHP языку. Так в феврале 2010 года компания Facebook открыла свой компилятор PHP — HipHop (HPHP, Hyper-PHP) генерирующий код на C++, с последующей компиляцией в машинный код с помощью gcc.

 

 

Основные синтаксические конструкции PHP

Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl.

Для работы программы не требуется описывать какие-либо переменные, используемые модули и т. п. Любая программа может начинаться непосредственно с оператора PHP.

Открывающий тег вида <?= используется для сокращённой записи конструкций используемых для вывода строки.

PHP исполняет код, находящийся внутри ограничителей, таких как <?php?>. Всё, что находится вне ограничителей, выводится без изменений. В основном это используется для вставки PHP-кода в HTML-документ.

echo — Выводит одну или более строк.

 

void echo (string $arg1 [, string $... ])

Выводит все аргументы.

На самом деле echo - это не функция, а конструкция языка, поэтому заключать аргументы в скобки необязательно. echo (в отличии от других языковых конструкций) не ведет себя как функция, поэтому не всегда может быть использована в контексте функции. Вдобавок, если вы хотите передать более одного аргумента в echo, эти аргументы нельзя заключать в скобки.

Методы передачи данных

 

Данные методом GET передаются путем их добавления к URL-адресу вызываемого сценария, предназначенного для обработки полученной информации. Для пояснения данного метода наберите в адресной строке браузера URL-адрес ресурса и добавьте сначала знак вопроса (?), а затем строчку num=10. Например файл script.php:

<html>
<head>
<title>Проверка метода GET в PHP</title>
</head>
<body>
<?php
echo ($_GET["num"]."<br>");
echo ($_GET["type"]."<br>");
echo ($_GET["v"]);
?>
</body>
</html>

И теперь вызовите этот файл в браузере

http://путь/script.php?num=10&type=new&v=text

 

 

Для отправки данных методом POST нужно использовать HTML -формы.

<form action="script_post.php" method="post" >
Введите число <input type="text" name="num" value="" /><br/>
У Вас есть компьютер? <select name="type">
<option value="yes">Да</option>
<option value="no">Нет</option>
</select><br/>
Ваш комментарий:<br/>
<textarea name="v" ></textarea><br/>
<input type="submit" name="bsubmit" value="Отправить" />
</form>

 

 

Условные выражения

Конструкция if является одной из наиболее важных во многих языках программирования, в том числе и PHP. Она предоставляет возможность условного выполнения фрагментов кода. Структура if реализована в PHP по аналогии с языком C:

if (выражение) инструкция

 

 

Следующий пример выведет a больше b, если значение переменной $a больше, чем $b:

<?php
if ($a > $b)
echo "a больше b";
?>

 

Оператор switch подобен серии операторов IF с одинаковым условием. Во многих случаях вам может понадобиться сравнивать одну и ту же переменную (или выражение) с множеством различных значений, и выполнять различные участки кода в зависимости от того, какое значение принимает эта переменная (или выражение). Это именно тот случай, для которого удобен оператор switch.

 

Пример:

 

<?php
if ($i == 0) {
echo "i равно 0";
} elseif ($i == 1) {
echo "i равно 1";
} elseif ($i == 2) {
echo "i равно 2";
}

switch ($i) {
case 0:
echo "i равно 0";
break;
case 1:
echo "i равно 1";
break;
case 2:
echo "i равно 2";
break;
}
?>

 

Циклы

Цикл for самый сложный цикл в PHP. Он ведет себя так же как его аналог в языке C. Синтаксис цикла for следующий:

for (expr1; expr2; expr3) statement

Пример вывода на экран чисел от 1 до 10:
<?php
for ($i = 1; $i <= 10; $i++) {
echo $i;
}

?>

 

 

Циклы while являются простейшим видом циклов в PHP. Они ведут себя так же, как и их коллеги из языка C. Простейшей формой цикла while является следующее выражение:

while (expr) statement

Пример вывода на экран чисел от 1 до 10:
<?php
/* пример 1 */

$i = 1;
while ($i <= 10) {
echo $i++; /* выводится будет значение переменной
$i перед её увеличением
(post-increment) */

}

?>

 

Цикл do-while очень похож на цикл while, с тем отличием, что истинность выражения проверяется в конце итерации, а не в начале. Главное отличие от обычного цикла while в том, что первая итерация цикла do-while гарантированно выполнится (истинность выражения проверяется в конце итерации), тогда как она может не выполниться в обычном цикле while (истинность выражения которого проверяется в начале выполнения каждой итерации, и если изначально имеет значение FALSE, то выполнение цикла будет прервано сразу).

Есть только один вариант синтаксиса цикла do-while:

<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>

 

Пример:

<?php
do {
if ($i < 5) {
echo "i еще недостаточно велико";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
echo "значение i уже подходит";

/* обработка i */

} while (0);
?>

 

Массивы

На самом деле массив в PHP - это упорядоченное отображение, которое устанавливает соответствие между значением и ключом. Этот тип оптимизирован в нескольких направлениях, поэтому вы можете использовать его как собственно массив, список (вектор), хэш-таблицу (являющуюся реализацией карты), словарь, коллекцию, стэк, очередь и, возможно, что-то еще. Так как значением массива может быть другой массив PHP, можно также создавать деревья и многомерные массивы.

Синтаксис

array(key => value, key2 => value2, key3 => value3,...)

Пример: Простой массив

<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
);

// Начиная с PHP 5.4
$array = [
"foo" => "bar",
"bar" => "foo",
];
?>

Типы данных

PHP является языком программирования с динамической типизацией, не требующим указания типа при объявлении переменных, равно как и самого объявления переменных. Преобразования между скалярными типами зачастую осуществляются неявно без дополнительных усилий (впрочем, PHP предоставляет широкие возможности и для явного преобразования типов).

 

К скалярным типам данных относятся:

  • целый тип (integer),
  • вещественный тип данных (float, double),
  • логический тип (boolean),
  • строковый тип (string),
  • и специальный тип NULL.

 

К нескалярным типам относятся:

  • «ресурс» (resource),
  • массив (array),
  • объект (object),

 

 

К псевдотипам относятся:

  • mixed один или несколько необязательных параметров,
  • number число (integer либо float)
  • callback (string или анонимная функция)
  • void отсутствие параметров.

Обращение к переменным и функциям

Обращение к переменным осуществляется с помощью символа $, за которым следует имя переменной. Данная конструкция может быть применена также для создания динамических переменных и функций.

В PHP echo и print не являются функциями (хотя print имеет возвращаемое значение), а являются синтаксическими единицами. При их использовании можно опустить скобки.

Суперглобальные массивы

Суперглобальными массивами (англ. Superglobal arrays) в PHP называются предопределённые массивы, имеющие глобальную область видимости без использования директивы global. Большая часть этих массивов содержит входные данные запроса пользователя (параметры GET-запроса, поля форм при посылке методом POST, куки и т. п.).

 

$GLOBALS

Массив всех глобальных переменных (в том числе и пользовательских).

$_SERVER (аналог для устаревшего — $HTTP_SERVER_VARS)

Содержит переменные окружения, которые операционная система передаёт серверу.

$_ENV (уст. $HTTP_ENV_VARS)

Текущие переменные среды (англ. Environment variables). Их набор специфичен для платформы, на которой выполняется скрипт.

$_GET (уст. $HTTP_GET_VARS)

Содержит параметры GET-запроса, переданные в URI после знака вопроса «?».

$_POST (уст. $HTTP_POST_VARS)

Ассоциативный массив значений полей HTML-формы при отправке методом POST. Индексы элементов соответствуют значению свойства name объектов(кнопки, формы, радио-кнопки, флажки и т. д.) HTML-формы.

$_FILES (уст. $HTTP_POST_FILES)

Ассоциативный массив со сведениями об отправленных методом POST файлах. Каждый элемент имеет индекс, идентичный значению атрибута «name» в форме, и, в свою очередь, также является массивом со следующими элементами:

  • ['name'] — исходное имя файла на компьютере пользователя.
  • ['type'] — указанный агентом пользователя MIME-тип файла. PHP не проверяет его, и поэтому нет никаких гарантий, что указанный тип соответствует действительности.
  • ['size'] — размер файла в байтах.
  • ['tmp_name'] — полный путь к файлу во временной папке. Файл необходимо переместить оттуда функцией move_uploaded_file. Загруженные файлы из временной папки PHP удаляет самостоятельно.
  • ['error'] — код ошибки. Если файл удачно загрузился, то этот элемент будет равен 0 (UPLOAD_ERR_OK).

$_COOKIE (уст. $HTTP_COOKIE_VARS)

Ассоциативный массив с переданными агентом пользователя значениями куки.

$_REQUEST

Содержит элементы из массивов $_GET, $_POST, $_COOKIE. С версии PHP 4.1 включает $_FILES.

$_SESSION (уст. $HTTP_SESSION_VARS)

Содержит данные сессии.

Управление выводом ошибок

PHP поддерживает один оператор управления ошибками: знак (@). В случае, если он предшествует какому-либо выражению в PHP-коде, любые сообщения об ошибках, генерируемые этим выражением, будут проигнорированы.

 

В случае, если установлена опция track_errors, все генерируемые сообщения об ошибках будут сохраняться в переменной $php_errormsg. Эта переменная будет перезаписываться при каждой новой ошибке, поэтому в случае необходимости проверяйте ее сразу же.

 

Для включения отображения сообщения об ошибках добавьте в php-скрипт следующий код:

 

error_reporting(E_ALL); ini_set('display_errors', 'on');

 

В этом случае, все предупреждения (warning), замечания (notice) и ошибки (error) в php-коде, будут выводится на странице Вашего сайта при обращении к скрипту.

Если в коде Ваших скриптов уже присутствует вызов функций error_reporting() и ini_set() с параметром 'display_errors' - закомментируйте их.

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

Объектно-ориентированный подход к программированию

 

Ключевое слово class было зарезервировано ещё в третьей версии языка. В четвёртой версии стало возможно создавать классы и объекты на их основе. Однако принципы ООП поддерживались лишь частично, так например, все члены (переменные и методы) были открыты. К тому же создание объектов было дорогой операцией и работали они медленно.

Начиная с пятой версии PHP обладает полной поддержкой ООП. Работа с классами была оптимизирована и теперь такой код работает достаточно быстро.

Начиная с версии 5.4.0 множественное наследование может быть реализовано с помощью механизма особенностей (англ. trait).

class C1 extends C2 implements I1, I2{ private $a; protected $b; function __construct($a, $b) { parent::__construct($a, $b); $this->a = $a; $this->b = $b; } public function plus() { return $this->a + $this->b; } /*............... */ } $d = new C1(1, 2);echo $d->plus(); // 3

 

 

Паттерны проектирования

Паттерн проектирования (design pattern) - это общее типовое решение некоторой проблемы, многократно повторяемое в процессе проектирования архитектуры программного продукта. Они показывают отношения и взаимодействия между классами, позволяют сделать систему гибкой и легко изменяемой. За счет их правильного использования повышается коэффициент использования готовых решений.

 

Паттерн Factory (фабрика)

Многие паттерны проектирования в оригинальной книге Design Patterns поощряют слабую связанность. Для понимания этой концепции нужно упомянуть о борьбе, через которую проходят многие разработчики крупных систем. Проблема возникает при изменении куска кода и дальнейшей попытке отследить влияние этого изменения на систему (и в худшем случае — наблюдением за каскадом отказов системы, которые, предполагалось, никак с изменённым кодом не связанными).

 

 

Factory1.php

<?phpinterface IUser{ function getName();} class User implements IUser{ public function __construct($id) { } public function getName() { return "Jack"; }} class UserFactory{ public static function Create($id) { return new User($id); }} $uo = UserFactory::Create(1);echo($uo->getName()."\n");?>

 

 

Паттерн Observer (наблюдатель)

Паттерн Observer предлагает ещё один способ, чтобы избежать сильной связанности между компонентами. Этот паттерн простой: один объект делает себя наблюдаемым, добавляя метод, который позволяет другому объекту, наблюдателю, себя зарегистрировать.

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

 

Observer.php

<?phpinterface IObserver{ function onChanged($sender, $args);} interface IObservable{ function addObserver($observer);} class UserList implements IObservable{ private $_observers = array(); public function addCustomer($name) { foreach($this->_observers as $obs) $obs->onChanged($this, $name); } public function addObserver($observer) { $this->_observers []= $observer; }} class UserListLogger implements IObserver{ public function onChanged($sender, $args) { echo("'$args' added to user list\n"); }} $ul = new UserList();$ul->addObserver(new UserListLogger());$ul->addCustomer("Jack");?>

В коде определяются 4 элемента: 2 интерфейса и 2 класса. Интерфейс IObservable определяет наблюдаемый объект, а UserList реализует этот интерфейс, чтобы зарегистрироваться в качестве наблюдаемого. IObserver определяет, что нужно, чтобы стать наблюдателем, а UserListLogger реализует интерфейс IObserver.

 

Шаблонизатор Smarty

Smarty – один из самых известных шаблонизаторов. Шаблонизатор нужен для разделения PHP-кода от HTML-кода. Если первый раз с этим сталкиваешься, преимущества такого подхода заметны не сразу, но потом ты удивляешься, как раньше мог обходиться без шаблонов.

Пример с использованием Smarty:

<?php // подключаем класс Smartyrequire_once('smarty/Smarty.class.php'); // Создаем объект класса$smarty = new Smarty(); // Устанавливаем папки шаблонов// 'templates' – каталог, в котором хранятся шаблоны// 'templates_c' - туда Smarty сохраняет скомпилированные шаблоны $smarty->template_dir = 'templates';$smarty->compile_dir = 'templates_c'; // Получение данных их БД (в виде ассоциативного массива)$news = $DB->query("SELECT * FROM news ORDER BY id LIMIT 0,10"); // передаем массив в шаблонизатор$smarty->assign('news', $news); /* Допустим что наша задача была в простом выводе данных в шаблон, что мы уже и сделали,и это конечный этап – вызываем метод display() класса smarty, который выводит,передаёт данные в шаблон, перекомпилирует (если были изменения) и выводит контент.Методу передается имя файла шаблона, в котором как предполагается был обработаннужным образом массив news */ $smarty->display('news.tpl');?>

 

 

SQL – запросы и их обработка с помощью PHP

SQL - это аббревиатура, которая так и "раскрывается" - структуризированный язык запросов.
В языке PHP для это цели существует целый ряд функций с префиксом "mysql". Функция, без которой в языке PHP выполнение SQL-запросов было бы просто невозможным:

resource mysql_query(запрос)

Данная функция посылает запрос к базе данных и возвращает в случае успешного обращения идентификатор ресурса.
Для того чтобы подключиться к базе данных MySQL необходимо выполнить следующую последовательность:

$host='localhost'; // имя хоста (уточняется у провайдера)$database='db_name'; // имя базы данных, которую вы должны создать$user='user_name'; // заданное вами имя пользователя, либо определенное провайдером$pswd='your_pass'; // заданный вами пароль $dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");mysql_select_db($database) or die("Не могу подключиться к базе.");

Итак mysql_connect () - функция для подключения к серверу MySQL на Вашем хостинге.
А mysql_select_db() выбирает базу данных на сервере для подключения.
Иными словами подключаемся к серверу, выбираем базу и начинаем работать.
Функция die() вызывается в случае ошибки и выводит в окно браузера сообщение, которое вы указали.
Для завершения работы с базами данных используется функция:

mysql_close($dbh);

Здесь $dbh - дескриптор, которые при соединении возвратила функция mysql_connect.
Чтобы создать таблицу в базе данных давайте выполним в phpmyadmin нашего localhost следующий запрос:

CREATE TABLE `my_sql_table` (`id` INT NOT NULL, // идентификатор будущих записей таблицы`firstname` VARCHAR(50) NOT NULL, // текстовое поле VARCHAR`surname` VARCHAR(50) NOT NULL, // max длиной 50 символовPRIMARY KEY (`id`) // первичный ключ - идентификатор id);

Итак таблица создана. Выполним первый запрос, который сразу оформим в виде PHP-кода:

<?php// Файл firstsql.php$host='localhost'; // имя хоста (уточняется у провайдера)$database='db_name'; // имя базы данных, которую вы должны создать$user='user_name'; // заданное вами имя пользователя, либо определенное провайдером$pswd='your_pass'; // заданный вами пароль $dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");mysql_select_db($database) or die("Не могу подключиться к базе.");$query = "SELECT * FROM `my_sql_table`";$res = mysql_query($query);while($row = mysql_fetch_array($res)){echo "Номер: ".$row['id']."<br>\n";echo "Имя: ".$row['firstname']."<br>\n";echo "Фамилия: ".$row['surname']."<br><hr>\n";}?>

Разберем PHP-код файла firstsql.php. Начнем с собственно запроса к таблицам базы данных (БД).

$query = "SELECT * FROM `my_sql_table`";

Данный запрос можно расшифровать так: выбрать из таблицы my_sql_table БД все записи из всех полей. Таким образом знак * после слова SELECT означает "выбрать абсолютно все". Итак, запрос сформирован. Теперь его надо выполнить:

$res = mysql_query($query);

В случае успешного выполнения запроса функция mysql_query() вернет нам идентификатор ресурса $res.
Его мы должны передать в качестве параметра в функцию mysql_fetch_array(). Название этой функции говорит само за себя. Т.е. она формирует и выдает массив по выборке из таблицы БД. В случае нашей таблицы массив будет состоять из числа элементов, равных количествам записей (строк) в таблице и содержать значения id, firstname, surname для каждой строки таблицы. Следовательно, следующий код:

while($row = mysql_fetch_array($res)){echo "Номер: ".$row['id']."<br>\n";echo "Имя:".$row['firstname']."<br>\n";echo "Фамилия:".$row['surname']."<br><hr>\n";}

можно прокомментировать так: пока введенная нами переменная $row получает не нулевые результаты работы функции mysql_fetch_row следует выдать в броузер значение полей $row['id'], $row['firstname'], $row['surname'] с помощью echo.
Если запрос выполнить так:

$query = "SELECT firstname FROM `my_sql_table`";

то это будет означать, что из всех строк выбирается только значения поля firstname.
Следовательно предыдущий код следует переписать как:

$res = mysql_query($query);while($row = mysql_fetch_array($res)){echo "Имя:".$row['firstname']."<br>\n";}

Если Вы хотите выбрать строки таблицы с конкретным значением id где фамилия (surname) будет Петров, то запрос перепишется следующим образом:

$query = "SELECT id FROM `my_sql_table` where surname='Петров'";

А вот если потребуется узнать фамилию того, кто находится под номером, к примеру, 5, то запрос будет таким:

$query = "SELECT surname FROM `my_sql_table` where id=5";

В этом случае Вы знаете, что результатом запроса будет всего одна строка из таблицы. Т.е. нет смысла организовывать цикл с использованием while. И обработка запроса будет следующей

$res = mysql_query($query);$row = mysql_fetch_row($res);echo "Фамилия пятого человека в списке: ".$row[0]."\n";

Здесь вместо mysql_fetch_array() мы применили mysql_fetch_row(). Т.е. получить значение поля (или полей) конкретной строки. Поскольку поле у нас было одно - surname - мы можем обратиться к единственному элементу массива $row как $row[0];.

Итак, рассмотрим наиболее типичные примеры запросов MySQL. Рассмотрение проведем на базе таблицы my_sql_table:
1. Добавим в таблицу my_sql_table поле middle_name (отчество) после surname:

$query = "ALTER TABLE `my_sql_table` ADD `middle_name`
VARCHAR(50) NOT NULL AFTER `surname`";

2. Теперь удалим поле surname из таблицы my_sql_table:

$query = "ALTER TABLE `my_sql_table` DROP `surname`";

3. Удаляем записи из таблицы my_sql_table с фамилией Сидоров:

$query = "DELETE FROM `my_sql_table` where surname='Сидоров'";

4. Помимо знаков равенства, также "больше" или "меньше", в языке MySQL запросов существует понятие " похоже на ". Выберем записи из таблицы my_sql_table, где в фамилии встречается " дор ":

$query = "SELECT * FROM `my_sql_table` where surname like '%дор%'";

Здесь наличие " % " в начале и конце 'дор' и означает, что запрос будет искать именно 'дор', причем не важно в начале, конце, или середине фамилии он находится. Рассмотрим следующий пример
5. Выберем записи из таблицы my_sql_table с фамилией, которая начинается на П. Обратите внимание на расположение " % ":

$query = "SELECT * FROM `my_sql_table` where surname like 'П%'";

6. Вычислим максимальное значение id:

$query = "SELECT MAX(id) FROM `my_sql_table`";

7. Вычислим количество полей в my_sql_table с фамилией, которая начинается на П.

$query = "SELECT COUNT(*) FROM `my_sql_table` where surname like 'П%'";

8. Удаление таблицы my_sql_table:

$query = "DROP TABLE `my_sql_table`";

Для запросов 1-3 на языке PHP достаточно просто выполнить запрос:

mysql_query($query);

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...