65871

Использование PhpMyAdmin в базе данных Mysql

Лекция

Информатика, кибернетика и программирование

Программа PHPMYADMIN получив, на вход имя создаваемой базы, проверит по своему внутреннему справочнику отсутствие подобного имени и сформирует (зарезервирует) на диске место для будущих таблиц этой базы данных.

Русский

2014-08-09

1.46 MB

3 чел.

21

PhpMyAdmin Лекция.doc

Лекция. Введение  использование PhpMyAdmin в базе данных Mysql.

Для входа в Mysql (при использовании пакета Денвер) необходимо воспользоваться утилитой, которая расположена по адресу  http://localhost/phpmyadmin/, предварительно запустив пакет (Start Denwer).

Рис.1 Состав папки содержащей утилиту PHPMYADMIN

Указав в Internet Explorer адрес, мы попадаем в оболочку (рис. 2 – адрес http://localhost/phpmyadmin или рис. 2ahttp://localhost/tools/phpmyadmin; адрес зависит от версии Denwer), в которой в поле ввода  необходимо указать имя создаваемой базы. Пусть для примера мы укажем имя базы My_base и введем его в Get поле, показанное на рис. 2 , тогда следующим окном будет рис. 3.

Рис.2. Состав окна утилиты PHPMYADMIN

Примечание. Овалом здесь и далее указывается область, на которую надо обратить внимание.

Рис. 2a. Состав окна утилиты PHPMYADMIN версия Denwer3

Программа PHPMYADMIN получив, на вход имя создаваемой базы, проверит по своему внутреннему справочнику отсутствие подобного имени и сформирует (зарезервирует) на диске место для будущих таблиц этой базы данных.

Если подобное имя в системной таблице СУБД MySQL существует, то Вы получите ошибку вида

Рис. 2b. Состав окна утилиты PHPMYADMIN версия Denwer3

Если в базе данных не обнаружено таблиц, то удалите пустую базу (рис. 2c), для чего в окне, показанном на рис. 2a или 2b, выберите пункт меню “Базы данных”  и перейдите в этот режим. Будет показано окно (рис. 2с), в котором необходимо отметить удаляемую базу () и использовать кнопку .

Системой будет сгенерирована команда

и Ваш ответ приведет к желаемому результату.

Рис. 2c. Состав окна утилиты PHPMYADMIN версия Denwer3

Если информация из базы данных Вам необходима, то укажите другое имя для вновь создаваемой базы.

В СУБД MySQL – база данных понимается как набор хранимых таблиц.

На рис. 3 показана команда CREATE DATABASE языка SQL использованная оболочкой для резервирования места на диске.

Пусть имя новой базы указанное в поле будет следующим:

Примечание. Использование закладок позволяет посмотреть предшествующие шаги Ваших действий.

На данный момент в базе данных с именем My_base нет таблиц.

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

Рис.3. Окно PHPMYADMIN

Пусть мы решили создать в базе данных таблицу с именем Lessons, состоящую из 3-х полей (столбцов). Указанные данные, вводятся в Get поля представленные на рис. 3 и показаны на рис. 4.

Рис.4. Введение названия хранимой таблицы и числа ее столбцов

Нажав клавишу “Пошел”, на экран будет выведено окно вида (рис. 5), в котором необходимо указать информацию о таблице Lessons. Пусть логически таблица предназначена для хранения информации о лекциях (их названиях) и авторах лекции. Каждый столбец должен получить набор свойств характеризующих как сам столбец, так и элементы, которые будут вводиться (означиваться) в этом столбце таблицы. Другими словами каждому столбцу необходимо присвоить осмысленное имя, указать его тип, длину и точность (если столбец предназначен для хранения числовых данных) и ограничения присущие элементам этого столбца.

Примечание. Рекомендуется имя первого поля (столбец) в таблице обозначать символами  “Id” и присваивать ему тип INT (целое), длина этого поля прогнозируется максимальным числом строк, которое может содержаться в таблице. Тип поля INT использует 4 байта для хранения значения. Минимально значение -2147483648, максимальное 2147483647. Беззнаковый INT (unsigned) хранит значения от 0 до 4 294 967 295.

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

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

Длина этого поля может максимально занимать 100 символов.

Рис.5. Состав формы для указания характеристик столбцов формы

Количество столбцов для описания характеристик каждого поля таблицы базы данных достаточно велико и на рис. 5 они все не показаны, поэтому не поместившиеся на экране столбцы приведены на рис. 6.

Рис. 6. Продолжение состава формы для указания характеристик столбцов формы

Рис. 6a. Продолжение состава формы в PhpMyAdmin для указания характеристик столбцов формы

Примечание. Пиктограмма –  рис. 6a соответствует на рис. 6 , - индекс и т. д.

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

Пусть Вы заполнили форму (рис. 5, 6) следующими данными (рис. 7) с учетом того, что в столбце с именем “Дополнительно” для первой строки таблицы (имя поля Id) указали служебное слово “auto_increment”, приказывающее СУБД MySQL формировать это поле автоматически, используя алгоритм счетчика. Т.е., если в хранимую таблицу (для нашего случая таблица с именем “lessons” в базе данных My_base) будет добавляться новая строка, то значение поля с именем “Id” будет формироваться из значения поля предыдущей строки плюс единица.

Рис.7. Состав формы после указания характеристик столбцов формы

Если при попытке сохранить форму таблицы “lessons” Вы не укажите, на каком поле (полях) формируется реляционный ключ (для нашего случая таким полем является поле с именем Id, и Вы не указали это явно в столбце “Первичный” (на рис. 7 точка стоит правильно)), то получите сообщение от MySQL об ошибке, если точка в столбце “Первичный” отсутствует, примерно следующего вида (рис.8):

Рис.8. Реакция MySQL на некорректное объявление таблицы Lessons

CREATE TABLE ‘lessons’(

   ‘id’ INT(8) NOT NULL AUTO_INCREMENT,

    ‘titel’ VARCHAR(200) NOT NULL

    ‘writer’ VARCHAR(100) NOT NULL

)

Представленное предложение языка SQL (а точнее его часть, относящаяся к DDL) автоматически генерируется программой PHPMYADMIN, и указывает какая команда SQL была использована для генерации структуры  хранимой таблицы с именем lessons’ и каков набор столбцов и их характеристик в создаваемой таблице.

Ниже приводится описание ошибки, сгенерированное в СУБД  MYSQL, объясняющее, почему таблица не может быть создана.

Incorrect table definition; There can only be one auto column and it mast be defined as a key

Если Вы правильно укажите характеристики для создаваемой таблицы, и нажмете кнопку “Сохранить” (рис. 5), то получите следующее окно (рис. 9).

Рис.9. Реакция MySQL на корректное объявление таблицы Lessons

Кнопки типа “Структура”, “Обзор”, “SQL” и т. д. показанные на рис. 9 позволяют модифицировать внутреннею структуру как самой созданной таблицы Lessons, так и введенных в нее данных.

Так, например, кликнув на кнопке “Структура” (рис. 9), мы получим окно следующего содержания (рис. 10).

Рис. 10. Реакция  на кнопку “Структура” таблицы Lessons на рис. 9

Если  возникает необходимость добавить новую запись (т. е. заполнить строку таблицы реальной информацией), то следует воспользоваться кнопкой (рис. 10 или рис. 11).

Рис. 11. Реакция  на кнопку “Вставить” таблицы Lessons

Приступим к заполнению информацией созданной таблицы.

Напомним, что первая строка с именем id (рис. 11) заполняется автоматически, так как ранее для нее указано ограничение “auto_increment”.

При заполнении 2-ой и 3-ей строки  в столбце “Функция ” (рис. 11) может быть использован элемент из списка, показанный на рис.12, однако для создаваемой записи  нет необходимости в использовании его элементов.

Поэтому заполнению подлежат только поля строки 2 и 3 в столбце “Значение”, что и показано на рис. 13.

Рис. 12. Listbox  на кнопкe  столбца “Функция” таблицы Lessons

Рис. 13. Ввод данных в первую строку таблицы Lessons

Если Вы заполнили все данные для первой строки таблицы, то следует нажать кнопку “Пошел” (рис. 13) и на экран будет выведено следующее окно (рис. 14).

Рис. 14. Таблица Lessons после ввода первой строки

Структура SQL-запроса и синтаксические правила рассмотрены в лекциях по основам SQL.

INSERT INTOlessons’ (‘id’, ’titel’, ’writer’)

VALUES (‘’, ‘Лекция по Аpache’, ‘Иванов’

);

Аналогичным образом происходит вставка второй и последующих записей в таблицу Lessons, так, например, на рис. 15 показано состояние окна после ввода информации по лекции, касающихся основ SQL, которая названа ‘Лекция по SQL’  и читает ее преподаватель Иванов.

Рис. 15. Таблица Lessons после ввода второй строки и нажатия

Как видно из рис.15, в таблице две записи и выборка произведена с помощью команды SQL 

SELECT  *

FROMlessons

Прежде чем рассмотреть функции импорта и экспорта данных в Mysql

Рис. 16. Назначение кнопок

Рассмотрим, как производится импорт в базу данных файла, используя кнопку “SQL” (рис. 17). Для этого выбирается необходимая база и нажимается кнопка  

Рис. 17. Переход в режим импорта файла в базу данных my_base

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

Рис. 18. Импорт файла в базу данных my_base

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

Если возникает необходимость экспортировать  вашу базу данных в виде обычного текстового файла, то нажатие  кнопки “Экспорт”  (рис. 15-18) и на экране появится следующее диалоговое окно (рис.19).

Рис. 19. Экспорт из базы данных

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

На экране появляется текст, показанный на рис. 20, который копируется на удаленный сервер. Сервер имеет у себя такую же утилиту PHPMYADMIN, воспользовавшись которой на удаленном сервере (см. режим “Импорт”, использование функции (кнопки) “SQL” рис. 18), можно обновить содержимое базы на удаленном сервере.

Рис. 20. Экспорт из базы данных на сервер

Создание пользователей базы данных.

Прежде чем использовать базу данных, необходимо создать пользователей базы данных, которые могут к ней обращаться. Это делается следующим образом. Перейдите к началу процесса (). Ниже на рис.21. показана часть окна из рис. 2a, в которой присутствует вкладка “Привилегии”.

Рис. 21. Создание пользователя  из базы данных

Используя эту вкладку (пункт- , рис. 21) мы получаем следующее окно для создания пользователей базы данных (рис. 22).

Рис. 22. Создание пользователя  из базы данных

Используя функцию “Добавить нового пользователя” (рис. 22) происходит переход к окну, где необходимо определить пользователя и что ему разрешено делать с указанной базой данных. Окно выглядит следующим образом (рис. 23).

Рис. 23. Создание пользователя  базы данных

В поле “Имя пользователя”  (рис. 23) вводится латинскими буквами, например, “people”. В поле “Xost” указывается, например,”localhost”, что обозначает для данного пользователя доступ к базе данных с локальной машины и указывается его пароль (который дублируется в поле с именем “Подтверждение”). В нижней части открываем привилегии (вскидываем галочки) для опций доступных данному пользователю в базе данных My_base. Таким образом, экран показанный на рис. 23 приобретает вид (рис. 24).

Прим. Для дальнейших примеров, пусть для пользователя использован (введен) пароль “12345”

Рис. 24. Создание пользователя  базы данных и указание его привилегий

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

Рис. 25. Создание и регистрация пользователя  базы данных

После получения прав доступа необходимо протестировать базу данных. Для этого необходимо  закрыть базу (Stop Denwer – двойной клик) и перейти в папку C:\WebServers\home\moy.loc\www\index.php (рис.26), где хранится Ваш скрипт, содержащий PHP код (рис. 27). Папка создана в момент установки собственного сервера (лекция описывающая создание сервера на Вашей машине).

 

Рис. 26. Папка, где хранится программа

Прежде чем тестировать связь с созданной Вами базой данных, выполните следующие действия:

Шаг 1. Создайте копию из файла index.php в этой же папке с именем index0.php.

Шаг 2. Модифицируйте в index.php 3-ю строку (вставили символы 00) и сохраните его. На нижнем рисунке использован редактор 

 

<html>

<body>

<p> 00 Проверка моего домена с именем Moy.loc </p>

<? echo "Проверка вставки PHP кода в содержимое HTML" ?>

</body>

</html>

Рис. 26a. Модифицированная программа

Этот запасной файл (index0.php) поможет Вам при последующих тестах.

Шаг 3. Находясь на выделенном файле в Total Commander нажмите клавишу F3 (Просмотр) и Вы должны увидеть только одну строку:

00 Проверка моего домена с именем Moy.loc

Шаг 4. Находясь на выделенном файле в Total Commander нажмите клавишу F4 (Редактировать) и Вы должны увидеть полный текст программы, показанный на шаге 2.

Теперь необходимо модифицировать файл Index.php и вставить в него операторы языка PHP для обращения к хранимой информации (рис.29) в таблице Lessons базы данных My_Base.

<html>

<body>

<p> Проверка моего домена с именем Moy.loc </p>

<? echo "Проверка вставки PHP кода в содержимое HTML" ?>

</body>

</html>

Рис. 27. Текст программного кода файла index.php до модификации

Запустите сервер и укажите в адресной строке http://moy.loc/.

Рис. 28. Сайт до модификации на основе кода файла index.php из рис. 26а

Не закрывая сервер, модифицируйте файл index.php. Вставьте, например, в  3-й строке слово NEW и сохраните его. Нажмите кнопку “Обновить” в браузере

Рис. 29. Обновление файла index.php без перезагрузки сервера 

Рассмотренный прием позволяет экономить Ваше время при отладке программ.

Ниже (рис. 30) приводится текст модифицированной программы из рис.27 и результат запроса (рис. 31) к базе данных My_base на основании встроенного PHP кода (строки 6-12). Для учебных целей строки программы пронумерованы и физически они в файле index.php не присутствуют.

В отличие от кода представленного на рис. 27, в программе на рис. 30 присутствует встроенный PHP код и интерпретируемые операторы обращения к базе данных. Заметим, что сам язык SQL (а точнее его диалект для СУБД MySQL) не имеет никакого отношения ни к языку HTML, ни к языку PHP.

1   <html>

2   <body>

3   <p> NEW Проверка моего домена с именем Moy.loc </p>

4   <? echo "Проверка вставки PHP кода в содержимое HTML" ?><br>

5   

6   <?

7     $db = mysql_connect("localhost","people","12345");

8     mysql_select_db ("my_base",$db);

9     $result = mysql_query ("SELECT * FROM lesonss ", $db);

10   $num = mysql_num_rows ($result);

11   echo "Всего лекций в базе My_base, в таблице Lessons пока - $num";

12   ?>

13

14   </body>

15   </html>

Рис. 30. Модифицированный текст программного кода файла index.php

Примечание. Не копируйте содержимое из рис. 30 в файл index.php. В том рисунке в тексте есть грамматическая ошибка.

 

Теперь, если в адресной строке браузера указать адрес http://moy.loc/ , то используя файл hosts система сформирует новое содержимое сайта, которое должно быть как показано на рис. 31, если Вы не получили подобное изображение, то посмотрите на рис. 32.

Рис. 31. Сайт после модификации на основе кода файла index.php

Внимание ! Так должно быть. Но ! Ошибка будет раскрыта далее!

Поясним некоторые строки (рис. 30) кода языка PHP встроенные в язык HTML, позволяющие обратиться к базе данных MySQL и обратиться к хранимой в ней таблице Lessons для подсчета количества лекций хранимых в этой таблице.

Шестая и двенадцатая строка является стандартом, указывающим интерпретатору, что все расположенное между этими строками относится к языку PHP.

Седьмая строка (рис. 30)

$db = mysql_connect("localhost","people","12345");

осуществляет соединение с СУБД  MySQL для пользователя с именем "people", имеющего пароль "12345". Первый параметр функции "localhost", указывает, что информация должна браться с текущего (локального) компьютера. Успешность соединения с сервером СУБД  MySQL фиксируется в переменной (идентификаторе) $db.

Восьмая строка, используя встроенную функцию языка PHP

mysql_select_db ("my_base", $db);

позволяет обратиться к базе данных с именем  "my_base", используя идентификатор  $db.

Девятая строка (рис. 30), используя встроенную функцию языка PHP  mysql_query

$result = mysql_query ("SELECT *  FROM  lesonss ", $db);

реализует запрос к таблице lessons  базы данных на основе оператора языка SQL SELECT. Этот первый параметр (обязательно в двойных ковычках) является конструкцией языка SQL. Вторым оператором функции является идентификатор  $db. Результат работы функции фиксируется в переменной с именем $result , которая по своей структуре является двумерным массивом.

Деcятая строка, используя встроенную функцию языка PHP mysql_num_rows

$num = mysql_num_rows ($result);

подсчитывает число строк в массиве  $result , т. е. фактически определяет, сколько записей хранится в таблице lessons.

Одиннадцатая строка, используя встроенную функцию языка PHP echo 

echo   "Всего лекций в базе My_base, в таблице Lessons пока - $num";

обеспечивает вывод сообщения на экран. Внутри этого сообщения могут быть использованы объявленные в теле программы переменные. В нашем случае такой переменной является переменная  $num.

Пятая и тринадцатая строка в тексте программы (рис. 30) вставлены для читаемости текста. В четвертой строке использован тег переноса <br>, который заставляет осуществлять вывод последующей информации с новой строки экрана.

Примечание. В конце лекций приведено более подробное описание этих функций.

Если Вы не получили окно показанное на рис. 31, а получили что-то подобное, как показано например, на рис. 32, то Вы скорее всего скопировали в файл index.php информацию из рис. 30, что не рекомендуется, т. к. при правке Вы могли допустить неточность.

Рис. 32. Предупреждение после модификации кода файла index.php

Чтобы проверить это предположение закомментарим /*   */ введенную часть текста (рис. 33).

<html>

<body>

<p> New  Проверка моего домена с именем Moy.loc </p>

<? echo "Проверка вставки PHP кода в содержимое HTML" ?><br>

<?

/*

  $db = mysql_connect("localhost","people","12345");

   mysql_select_db ("my_base",$db);

   $result = mysql_query ("SELECT * FROM lesonss ", $db);

  $num = mysql_num_rows ($result);

  echo "Всего лекций в базе My_base, в таблице Lessons пока - $num";

*/

?>

</body>

</html>

Рис. 33. Использование блокового комментария в php (строки 7 и 13)

Более подробно использование комментариев в языке PHP приведено далее.

На данном этапе после сохранения изменений и перезапуска Вы увидите уже привычный экран (рис. 29). Значит ошибка внутри вставленного кода.

Для простейшей отладки приведите текст программы к виду (рис. 34).

<html>

<body>

<p> New 1Проверка моего домена с именем Moy.loc </p>

<? echo "Проверка вставки PHP кода в содержимое HTML" ?><br>

 

<?

$db = mysql_connect("localhost","people","12345")or die ("Нет соединения". mysql_error());

mysql_select_db ("my_base",$db)or die ("Нет доступа к базе".mysql_error());

$result = mysql_query ("SELECT * FROM lesonss ", $db)or die ("No доступа к табл".mysql_error())

//$num = mysql_num_rows ($result);

//echo "Всего лекций в базе My_base, в таблице Lessons пока - $num";

?>

</body>

</html>

Рис. 34. Использование строкового комментария в php (строки 10 и 11) и функции mysql_error().

Обратите внимание, что точка перед функцией mysql_error() поставлена не случайно.

После проведенных манипуляций Вы получите на экране (рис. 35)

Рис. 35. Ошибка, выданная функцией mysql_error() из строки 9 кода на рис.14

Ошибка заключается в неправильном написании слова lesonss в 9-ой строке кода представленного на рис. 34. Таблицы с таким названием в базе данных My_Base нет, а есть таблица с именем lessons.

Таким образом, правильный текст программы следующий (рис. 36);

<html>

<body>

<p> New  Проверка моего домена с именем Moy.loc </p>

<? echo "Проверка вставки PHP кода в содержимое HTML" ?><br>

<?

$db = mysql_connect("localhost","people","12345");

mysql_select_db ("my_base",$db);

$result = mysql_query ("SELECT * FROM lessons ", $db)

$num = mysql_num_rows ($result);

echo "Всего лекций в базе My_base, в таблице Lessons пока - $num";

?>

</body>

</html>

Рис. 36. Правильный код index.php

Используем данный код (рис. 36) для проверки функции mail.  

$v = mail ("admin@moy.com","Привет", "Проверка функции MAIL"), которая позволяет переслать информацию с сервера клиенту (ам). Текст программы приобретет вид (рис. 37).

<html>

<body>

<p> New  Mail  Проверка моего домена с именем Moy.loc </p>

<? echo "Проверка вставки PHP кода в содержимое HTML" ?><br>

<?

$db = mysql_connect("localhost","people","12345");

mysql_select_db ("my_base",$db);

$result = mysql_query ("SELECT * FROM lessons ", $db);

$num = mysql_num_rows ($result);

echo "Всего лекций в базе My_base, в таблице Lessons пока - $num";

$v = mail ("admin@moy.com","Привет","Проверка функции MAIL");

?>

</body>

</html>

Рис. 37. Код index.php использующий обратную связь.

Первый параметр функции mail – это адрес получателя.

Второй параметр функции – это тема письма.

Третий параметр функции – это содержание письма

В качестве получателя использован адрес сформированный в предыдущей лекции. Поэтому при загрузке файла Index.html на исполнение, функция mail будет автоматически слать сообщение по указанному адресу.

Если программу представленную на рис. 2 сохранить и перейти в Вашем браузере (например, в Internet Explorer) по адресу http://moy.loc/ , то Вы получите следующее окно (рис. 38).

Рис.38. Окно браузера

Аналогичный вариант Вы получите и в окне другого браузера (рис. 38a).

Рис.38a. Окно браузера

Для того чтобы проверить ушло ли сообщение, необходимо перейти в папку куда Вы установили сервер (в нашем случае это  C:\WebServers) и найти в ней подпапку с именем !sendmail (рис.39).

Рис. 39. Папка !sendmail для хранения сообщений по Email

Если открыть эту папку, то в ней увидим полученное письмо (рис. 40).

Рис.40 Возможный состав папки

Имя письма состоит из даты отправки и времени получения. Расширение  .eml, указывает к какому типу файлов относится данный файл.

Если раскрыть этот файл, то мы увидим следующее содержимое (рис. 41).

  •  

Рис. 41. Содержимое письма

Далее приводится описание функций языка PHP, использованных в данной лекции.

mysql_num_rows

mysql_num_rows - получает количество рядов в результате.

Описание

int mysql_num_rows (resource result)

mysql_num_rows() возвращает количество рядов в результирующем наборе. Эта команда верна только для операторов SELECT. Для запрашивания количества рядов, задействованных в запросах INSERT, UPDATE или DELETE, используйте mysql_affected_rows().

Пример 1. mysql_num_rows()

<?php

$link = mysql_connect("localhost", "mysql_user", "mysql_password");

mysql_select_db("database", $link);

$result = mysql_query("SELECT * FROM table1", $link);

$num_rows = mysql_num_rows($result);

echo "$num_rows Rows\n";

?>

Примечание: если вы используете mysql_unbuffered_query(), mysql_num_rows() не возвращает корректное значение, пока не будут запрошены все ряды результирующего набора.

См. также mysql_affected_rows(), mysql_connect(), mysql_data_seek(), mysql_select_db() и mysql_query().

Для обратной совместимости можно также использовать mysql_numrows(), но это не рекомендуется.

mysql_query

mysql_query - отправляет MySQL-запрос/query.

Описание

resource mysql_query (string query [, resource link_identifier [, int result_mode]])

mysql_query() отправляет запрос текущей активной БД на сервере, ассоциированной со специфицированным идентификатором ссылки/link_identifier. Если link_identifier не специфицирован, принимается последняя открытая ссылка. Если такой ссылки нет (открытые соединения отсутствуют), функция пытается установить ссылку, как при вызове mysql_connect() без аргументов (без параметров), и использует её. Результат запроса буфферизируется.

Необязательный параметр result_mode может иметь значение MYSQL_USE_RESULT и MYSQL_STORE_RESULT. По умолчанию MYSQL_STORE_RESULT, т.е. результат буферизуется. См. также mysql_unbuffered_query() - это функция противоположного действия.

Примечание: строка запроса не должна заканчиваться точкой с запятой (;).

Только для операторов SELECT, SHOW, EXPLAIN или DESCRIBE функция mysql_query() возвращает идентификатор ресурса, FALSE если запрос не был выполнен корректно. Для других типов SQL-операторов mysql_query() возвращает TRUE при успехе, FALSE при ошибке. Не-FALSE return-значение означает, что запрос был правильным и может быть выполнен на сервере. Она ничего не сообщает о количестве задействованных или возвращаемых рядов. Это отличная возможность для запроса продолжить выполнение, не задействуя и не возвращая рядов.

Следующий запрос синтаксически неверен, поэтому mysql_query() терпит неудачу и возвращает FALSE:

Пример 1. mysql_query()

<php

$result = mysql_query("SELECT * WHERE 1=1")

   or die("Invalid query" . mysql_error());

?>

Следующий запрос семантически неверен, поскольку my_col не является столбцом таблицы my_tbl, поэтому mysql_query() терпит неудачу и возвращает FALSE:

Пример 2. mysql_query()

<?php

$result = mysql_query("SELECT my_col FROM my_tbl")

   or die ("Invalid query" . mysql_error());

?>

mysql_query() терпит также неудачу и возвращает FALSE, если вы не имеете прав доступа к таблице (-ам), на которую сделана ссылка в запросе.

Приняв, что запрос прошёл, вы можете вызвать mysql_num_rows() для определения количества рядов, возвращаемых оператором SELECT, или mysql_affected_rows() для определения количества рядов, задействованных оператором DELETE, INSERT, REPLACE или UPDATE.

Только для SELECT, SHOW, DESCRIBE или EXPLAIN функция mysql_query() возвращает новый идентификатор результата, который вы передаёте в mysql_fetch_array() и другие функции, работающие с результирующими таблицами. По окончании работы с результирующим набором вы можете освободить ресурсы, ассоциированные с ним, вызвав mysql_free_result(). В то же время память будет освобождаться автоматически по окончании работы скрипта.

См. также mysql_num_rows(), mysql_affected_rows(), mysql_unbuffered_query(), mysql_free_result(), mysql_fetch_array(), mysql_fetch_row(), mysql_fetch_assoc(), mysql_result(), mysql_select_db() и mysql_connect().

mysql_connect

mysql_connect - открывает соединение с MySQL-сервером.

Описание

resource mysql_connect ([string server [, string username [, string password [, bool new_link]]]])

Возвращает идентификатор ссылки MySQL при успехе, FALSE при неудаче.

mysql_connect() устанавливает соединение с MySQL-сервером. Следующие значения по умолчанию принимаются для для отсутствующих необязательных параметров: server = 'localhost:3306', username = имя пользователя - владельца серверного процесса, password = пустой пароль.

Параметр server может содержать также номер порта, например, "hostname:port", или путь к сокету, например, ":/path/to/socket" для localhost.

Вы можете подавить вывод сообщения при неудаче, введя префикс @ для имени функции.

Если второй вызов mysql_connect() делается с теми же аргументами, новая ссылка не устанавливается и возвращается идентификатор уже открытой ссылки. Параметр new_link модифицирует это поведение и заставляет mysql_connect() всегда открывать новую ссылку, даже если mysql_connect() была вызвана до этого с теми же параметрами.

Примечание: параметр new_link стал доступен, начиная с PHP 4.2.0.

Ссылка на сервер будет закрыта сразу по окончании работы скрипта, если не будет закрыта до этого явным вызовом mysql_close().

Пример 1. MySQL_connect

<?php

   $link = mysql_connect("localhost", "mysql_user", "mysql_password")

       or die("Could not connect");

   print ("Connected successfully");

   mysql_close($link);

?>

См. также mysql_pconnect() и mysql_close().

mysql_select_db

mysql_select_db - выбирает БД MySQL.

Описание

bool mysql_select_db (string database_name [, resource link_identifier])

Возвращает TRUE при успехе, FALSE при неудаче.

mysql_select_db() устанавливает текущую активную БД на сервере, ассоциированную со специфицированным идентификатором. Если link_identifier не специфицирован, принимается последняя открытая ссылка. Если такой ссылки нет, функция пытается установить ссылку, как при вызове mysql_connect() без аргументов, и использует её.

Каждый последующий вызов mysql_query() будет делаться на активной БД.

См. также mysql_connect(), mysql_pconnect() и mysql_query().

Для обеспечения обратной совместимости можно также использовать mysql_selectdb(), но это не рекомендуется.

mysql_close

mysql_close - закрывает MySQL-соединение.

Описание

bool mysql_close ([resource link_identifier])

Возвращает TRUE при успехе, FALSE при неудаче.

mysql_close() закрывает соединение с MySQL-сервером, ассоциированное со специфицированным идентификатором ссылки/link_identifier. Если link_identifier не специфицирован, используется последняя открытая ссылка.

Использовать mysql_close() обычно не нужно, поскольку непостоянные открытые ссылки закрываются автоматически в конце выполнения скрипта..

Примечание: mysql_close() не закрывает постоянные ссылки, созданные функцией mysql_pconnect().

Пример 1. MySQL_close

<?php

   $link = mysql_connect("localhost", "mysql_user", "mysql_password")

       or exit("Could not connect");

   print ("Connected successfully");

   mysql_close($link);

?>

См. также mysql_connect() и mysql_pconnect().

Комментарии

PHP поддерживает комментарии 'C', 'C++' и оболочки Unix. Например:

<?php

   echo "This is a test"; // Это однострочный комментарий в стиле c++

   /* Это многострочный комментарий,

      это ещё одна его строка */

   echo "This is yet another test";

   echo "One Final Test"; # Это комментарий в shell-стиле

?>

Комментарии "однострочных" стилей это комментарии, идущие до конца текущей строки или текущего блока PHP-кода, смотря что идёт вперёд.

<h1>This is an <?php # echo "simple";?> example.</h1>

<p>Этот заголовок запишет 'This is an example'.

Вы не должны вкладывать комментарии в стиле 'C' при комментировании больших блоков.

<?php

/*

   echo "This is a test"; /* Такой комментарий создаст проблемы */

*/

?>

Комментарии "однострочных" стилей это комментарии, идущие до конца текущей строки или текущего блока PHP-кода, смотря что идёт вперёд. Это означает, что HTML-код после // ?> БУДЕТ напечатан: ?>  выводит из режима PHP и возвращает в режим HTML, а // не может это делать.

mysql_error

mysql_error - возвращает текст сообщения об ошибке предыдущей MySQL-операции.

Описание

string mysql_error ([resource link_identifier])

Возвращает текст ошибки последней MySQL-функции или '' (пустую строку), если ошибки не было.

Ошибки, возвращаемые из БД MySQL, больше не выводят предупреждений. Используйте mysql_errno() для запрашивания кода ошибки. Обратите внимание, что эта функция возвращает только error code самой последней выполненной MySQL-функции (не включая mysql_error() и mysql_errno()), поэтому, если вы хотите использовать её, проверяйте значение перед вызовом другой MySQL-функции.

Пример 1. mysql_error

<?php

   mysql_connect("localhost", "mysql_user", "mysql_password");

   mysql_select_db("nonexistentdb");

   echo mysql_errno() . ": " . mysql_error(). "\n";

   mysql_select_db("kossu");

   mysql_query("SELECT * FROM nonexistenttable");

   echo mysql_errno() . ": " . mysql_error() . "\n";

?>

Этот пример даст на выводе:

1049: Unknown database 'nonexistentdb'

1146: Table 'kossu.nonexistenttable' doesn't exist

См. также: mysql_errno().

die

die - псевдоним exit(). 

Описание

Эта функция является псевдонимом exit().

exit

exit - выводит сообщение и прекращает выполнение текущего скрипта.

Описание

void exit ([string status])

void exit (int status)

Примечание: в действительности это не функция, а конструкция языка.

Функция exit() заканчивает выполнение скрипта. Она печатает status непосредственно перед выходом.

Если status это integer, это значение также будет использовано как статус выхода/exit status. Статус выхода должен быть в диапазоне от 1 до 254, статус 255 зарезервирован PHP и не должен использоваться.

Примечание: функция die() это псевдоним exit().

Пример 1. exit()

<?php

$filename = '/path/to/data-file';

$file = fopen ($filename, 'r')

   or exit("unable to open file ($filename)");

?>

Ресурс   http://www.php.su/functions/?exit

mail

mail - отправляет почту.

Описание

bool mail (string to, string subject, string message [, string additional_headers [, string additional_parameters]])

mail() автоматически отправляет сообщение message получателю to. Можно специфицировать несколько получателей, разделив запятой адреса в to. С помощью этой функции можно высылать Email с присоединением/attachment и содержимое специальных типов. Могут помочь и следующие RFC-документы: RFC 1896, RFC 2045, RFC 2046, RFC 2047, RFC 2048 и RFC 2049.

mail() возвращает TRUE, если почта была успешно принята для доставки, FALSE в ином случае.

Предупреждение!

Windows-реализация mail() во многом отличается от Unix-реализации. Во-первых, она не использует локальный экзешник для составления сообщений, а работает лишь по прямым сокетам, что означает, что MTA (Mail Transfer Agent — почтовый сервер) должен прослушивать сетевой сокет (который может находиться на локальной или удалённой машине). Во-вторых, специальные шапки/headers вроде From:, Cc:, Bcc: и Date: не интерпретируются MTA, а разбираются в PHP.
PHP < 4.3 поддерживал только header-элемент Cc: (и был чувствительным к регистру).
PHP >= 4.3 поддерживает все элементы шапки и нечувствителен к регистру символов.

Со́кеты (англ. socket — углубление, гнездо, разъём) — название программного интерфейса для обеспечения обмена данными между процессами. Процессы при таком обмене могут исполняться как на одной ЭВМ, так и на различных ЭВМ, связанных между собой сетью. Сокет — абстрактный объект, представляющий конечную точку соединения.

Следует различать клиентские и серверные сокеты. Клиентские сокеты грубо можно сравнить с оконечными аппаратами телефонной сети, а серверные — с коммутаторами. Клиентское приложение (например, браузер) использует только клиентские сокеты, а серверное (например, веб-сервер, которому браузер посылает запросы) — как клиентские, так и серверные сокеты.

.Программный интерфейс сокетов описан в стандарте POSIX.1 и в той или иной мере поддерживается всеми современными операционными системами.

Сокет на сленге системных администраторов означает комбинацию IP-адреса и номера порта, например 10.10.10.10:80.

Пример 1. Отправка почты.

mail("joecool@example.com", "My Subject", "Line 1\nLine 2\nLine 3");

Если передаётся четвёртый строковой аргумент, эта строка вставляется в конце шапки/header. Обычно это используют для добавления дополнительных шапок. Несколько дополнительных шапок разделяются символами carriage return и newline.

Примечание: вы обязаны использовать \r\n для разделения шапок, хотя некоторые почтовые агенты Unix могут работать с одиночными символами newline (\n).

Пример 2. отправка почты с дополнительными шапками/header.

mail("nobody@example.com", "the subject", $message,

    "From: webmaster@$SERVER_NAME\r\n"

   ."Reply-To: webmaster@$SERVER_NAME\r\n"

   ."X-Mailer: PHP/" . phpversion());

Параметр additional_parameters можно использовать для передачи дополнительных параметров программе, сконфигурированной для использования при отправке почты установкой конфигурации sendmail_path. Например, это можно применять для установки адреса отправителя при использовании sendmail. Вам может понадобиться добавить пользователя под которым работает ваш web-сервер, в вашу sendmail-конфигурацию для предотвращения добавления шапки 'X-Warning!' к сообщению, когда вы устанавливаете отправителя с использованием этого метода.

Пример 3. Отправка почты с дополнительными шапками/headers и установка дополнительного параметра командной строки.

mail("nobody@example.com", "the subject", $message,

    "From: webmaster@$SERVER_NAME", "-fwebmaster@$SERVER_NAME");

Вы можете также использовать простую технику построения строк для создания сложных email-сообщений.

Пример 4. Отправка сложной email.

/* получатели */

$to  = "Mary <mary@example.com>" . ", " ; //обратите внимание на запятую

$to .= "Kelly <kelly@example.com>";

/* тема\subject */

$subject = "Birthday Reminders for August";

/* сообщение */

$message = '

<html>

<head>

<title>Birthday Reminders for August</title>

</head>

<body>

<p>Here are the birthdays upcoming in August!</p>

<table>

<tr>

 <th>Person</th><th>Day</th><th>Month</th><th>Year</th>

</tr>

<tr>

 <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>

</tr>

<tr>

 <td>Sally</td><td>17th</td><td>August</td><td>1973</td>

</tr>

</table>

</body>

</html>

';

/* Для отправки HTML-почты вы можете установить шапку Content-type. */

$headers  = "MIME-Version: 1.0\r\n";

$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* дополнительные шапки */

$headers .= "From: Birthday Reminder <birthday@example.com>\r\n";

$headers .= "Cc: birthdayarchive@example.com\r\n";

$headers .= "Bcc: birthdaycheck@example.com\r\n";

/* и теперь отправим из */

mail($to, $subject, $message, $headers);

Примечание: убедитесь, что у вас нет символов newline в to или в subject, иначе почта может не отправиться корректно.

Не забудьте закрыть сервер

 или   

PAGE  32


 

А также другие работы, которые могут Вас заинтересовать

740. Процесс создание и отладки программы на языке ассемблера 88 KB
  Знакомство с методами создания и отладки программ, написанных на языке ассемблера. Создание программы, на языке ассемблера выполняющей арифметическую операцию и ввод/вывод с консоли. Трансляция, компоновка, трассировка программы.
741. Исследование параметров и характеристик двигателя постоянного тока с независимым возбуждением 337.5 KB
  Построение статических характеристик двигателя постоянного тока. Исследование механических характеристик двигателя постоянного тока с независимым возбуждением. Методика расчета параметров модели двигателя. Результаты исследования искусственной механической характеристики при пониженном напряжении на обмотке якоря. Частотная характеристика двигателя постоянного тока с независимым возбуждением.
742. Финансово-хозяйственная деятельность ООО Химпромстрой 306 KB
  Теоритические основы разработки программ развития персонала. Анализ использования персонала в ООО Химпромстрой. Эффективность программы развития персонала. Анализ состава и структуры персонала ООО Химпромстрой.
743. Русская философия 11-18 веков 150 KB
  Становление русской философии. Христианские и языческие элементы в духовной культуре Руси. Становление русской средневековой философии в 14-17 веках. Появление ранних ересей (нестяжатели, иосифляне и др.). Развитие исихазма на Руси, его основные теоретические положения и значение для русской культуры.
744. Стратегические цели как специфический объект управления 52.5 KB
  Стратегические цели определяются спецификой объекта управления. Увеличение доли продукции на рынке в регионе. Достижение передовых позиций в отрасли по такому-то научно-техническому направлению.
745. Правила безопасности при работах на технологических участках телефонных и телеграфных станций 126 KB
  Оборудование телефонных и телеграфных станций должно быть заземлено в соответствии с требованиями настоящих правил. Правила безопасности при работах в помещении ввода кабелей. Коммутационная система SI-2000. Групповой переключатель GSM. Alarm monitoring – Мониторинг аварийных сигналов.
746. Построение статистической группировки 137.5 KB
  Аналитическая группировка выявляет закономерность между величиной среднегодовой стоимости ОПФ и величиной объема продукции. Эта зависимость прямая и показывает эффективное управление объемом продукции, в зависимости от величины среднегодовой стоимости ОПФ.
747. Разработка схемы расхождения и обгона судов на заданном участке внутреннего водного пути 131 KB
  Навигационное описание участка водного пути. Требования правил плавания к движению и маневрированию судов. Разработка схемы расхождения и обгона судов на участке водного пути река Березина(117-98 километр).
748. Биосоциальная природа человека 153.5 KB
  Из социальной сущности людей вытекают закономерности и направления исторического развития человечества. Лазание по деревьям требует высокоразвитой нервной системы. Основные стадии антропогенеза. Трудовая деятельность стала важнейшим фактором дальнейшей эволюции человека.