Новые книги

Эта книга для тех, кто давно связан с разработкой программного обеспечения. Или для тех, кто еще думает выбрать программирование своей профессией. Или для тех, кто просто привык думать и размышлять о происходящем в мире информационных технологий.

Не секрет, что основная масса софтостроения сосредоточена в секторе так называемой корпоративной разработки: от комплексных информационных систем предприятия до отдельных приложений. Поэтому немалая часть сюжетов касается именно Enterprise Programming.

Из текста вы вряд ли узнаете, как правильно склеивать многоэтажные постройки из готовых компонентов в гетерогенной среде, проектировать интерфейсы, синхронизировать процессы или писать эффективные запросы к базам данных. Подобные темы будут лишь фоном для рассказа о софтостроительной «кухне». При определенной доле любопытства вы сможете убедиться, что новое – это хорошо забытое старое, узнать, как устроены некоторые сложные системы, когда следует применять разные технологии, почему специалистам в информатике надо особенно тщательно фильтровать поступающую из множества источников информацию, и многое другое, что вы, возможно, еще не знали или уже знаете, но с другой стороны.

В книге мне хотелось показать наш софтостроительный мир разработки корпоративных информационных систем не с парадного фасада описаний программных сред, подходов и технологий, а изнутри. Насколько это получилось – судить читателю.
В современном мире новые технологии играют решающую роль, а с помощью Интернета любой человек в короткое время может стать миллионером! И самое главное, что для этого вам даже не нужно выходить из дому – лишь тратить несколько часов времени на работу в Сети…

Способов заработать в Сети довольно много, но не все они идеальны, и не все будут одинаково полезны и эффективны. Эта книга написана специально для тех, кого интересует заработок в Интернете. На ее страницах вы найдете обзор методов: известные и не очень, старые и новые способы заработка в Сети, варианты открытия своего дела и способы работать «на себя» без создания ООО или ИП. Подробное описание каждого метода позволит вам сделать вывод о том, какой способ заработка подходит лично вам, а может быть, вы придумаете что-то новое. После прочтения этой книги вы будете обладать всеми знаниями, необходимыми для заработка в Сети – читайте и начинайте зарабатывать!

Содержание:

Эти функции обеспечивают доступ к серверам баз данных MySQL.

Больше информации о MySQL можно найти на сайте http://www.mysql.com/.


mysql_affected_rows

mysql_affected_rows -- возвращает количество столбцов, использованных предыдущими MySQL операциями
Описание

int mysql_affected_rows(int [link_identifier] );

mysql_affected_rows() возвращает количество столбцов, использованных запросами INSERT, UPDATE или DELETE на сервере, связываемом с определенным идентификатором связи(link_identifier). Если идентификатор связи не определен, используется последняя открытая связь.

Если последний запрос был запрос DELETE без условия WHERE, ВСЕ записи будут удалены из таблицы, но эта функция возвратит нуль.

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


mysql_close

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

int mysql_close(int [link_identifier] );

Возвращает: true при успешном завершении, false при ошибке

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

Имейте в виду, что это не всегда необходимо, так как непостоянные открытые связи автоматически закрываются в конце выполнения сценария.

mysql_close() не закроет устойчивые связи сгенерированные функцией mysql_pconnect().

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


mysql_connect

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

int mysql_connect(string [hostname] [:port] , string [username] , string [password] );

Возвращает: Правильный идентификатор связи MySQL при успешном выполнении, или false при ошибке.

mysql_connect() устанавливает соединение с MySQL сервером. Все аргументы дополнительны(опциональны), и если они пропущены, то устанавливаются по умолчанию -('localhost', имя пользователя, который владеет процессом, пустой пароль). Строка "имя сервера"("hostname") также может содержать номер порта( подобно "hostname:port").

В случае, если будет сделан второй вызов mysql_connect() с теми же аргументами, никакая новая связь не установится - вместо этого, будет возвращен идентификатор связи уже открытой связи.

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

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


mysql_create_db

mysql_create_db -- Создает базу данных MySQL
Описание

int mysql_create_db(string database name, int [link_identifier] );

mysql_create_db() пытается создавать новую базу данных на сервере связанном с определенным идентификатором связи.

См. также: mysql_drop_db(). Для совместимости с более ранними версиями может также быть использована функция mysql_createdb() .


mysql_data_seek

mysql_data_seek -- Перемещает внутренний указатель результата
Описание

int mysql_data_seek(int result_identifier, int row_number);

Возвращает: true при успешном выполнении , false при ошибке.

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


mysql_db_query

mysql_db_query -- Посылает MySQL запрос
Описание

int mysql_db_query(string database, string query, int [link_identifier] );

Возвращает: Правильный идентификатор результата MySQL в результате запроса, или false при ошибке .

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

См. также mysql_connect(). Для обратной совместимости может быть также использована функция mysql().


mysql_drop_db

mysql_drop_db -- удаляет базу данных MySQL
Описание

int mysql_drop_db(string database_name, int [link_identifier] );

Возвращает: true при успешном выполнении , false при неудачном завершении.

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

См. также: mysql_create_db(). Для обратной совместимости может быть также использована функция mysql_dropdb().


mysql_errno

mysql_errno -- Возвращает номер сообщения об ошибке предыдущей операции MySQL
Описание

int mysql_errno(int [link_identifier] );

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

<?php
mysql_connect("marliesle");
echo mysql_errno().": ".mysql_error()."<BR>";
mysql_select_db("nonexistentdb");
echo mysql_errno().": ".mysql_error()."<BR>";
$conn = mysql_query("SELECT * FROM nonexistenttable");
echo mysql_errno().": ".mysql_error()."<BR>";
?>

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


mysql_error

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

string mysql_error(int [link_identifier] );

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

<?php
mysql_connect("marliesle");
echo mysql_errno().": ".mysql_error()."<BR>";
mysql_select_db("nonexistentdb");
echo mysql_errno().": ".mysql_error()."<BR>";
$conn = mysql_query("SELECT * FROM nonexistenttable");
echo mysql_errno().": ".mysql_error()."<BR>";
?>

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


mysql_fetch_array

mysql_fetch_array -- Выбрать результат как ассоциативный массив
Описание

array mysql_fetch_array(int result);

Возвращает результат строки запроса как массив, или false при отсутствии результата.

mysql_fetch_array() является расширенной версией функции mysql_fetch_row(). Кроме того, что она сохраняет данные в пронумерованных элементах, результатного массива, она также сохраняет ассоциативную связь, используя имена полей как ключи.

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

select t1.f1 as foo t2.f1 as bar from t1, t2

Важно заметить, что использование mysql_fetch_array() НЕСУЩЕСТВЕННО медленнее, чем использование mysql_fetch_row(), пока это обеспечивает необходимую задачу.

Более подробно см. mysql_fetch_row()

Пример 1. mysql fetch array

<?php 
mysql_connect($host,$user,$password);
$result = mysql_db_query("database","select * from table");
while($row = mysql_fetch_array($result)) {
    echo $row["user_id"];
    echo $row["fullname"];
}
mysql_free_result($result);
?>

mysql_fetch_field

mysql_fetch_field -- Получает информацию о столбце из результата и возвращает ее как объект.
Описание

object mysql_fetch_field(int result, int [field_offset] );

Возвращает объект, содержащий информацию о поле.

mysql_fetch_field() Может быть использована для получения информации о поле в определенном результате запроса. Если параметры поля не указаны, то будет запрошено поле, которое еще не было запрошено функцией mysql_fetch_field().

Свойствами объекта являются:

  • name - имя столбца

  • table - имя таблицы, содержащей столбец

  • max_length - максимальная длинна столбца

  • not_null - 1, если столбец не может принимать нулевые значения

  • primary_key - 1, если столбец является первичным ключом.

  • unique_key - 1 если столбец является уникальным ключом

  • multiple_key - 1 если столбец является не-уникальным ключом

  • numeric - 1 если столбец числовой

  • blob - 1 это столбец является BLOB

  • type - тип столбца

  • unsigned - 1 если столбец не назван

  • zerofill - 1 если столбец заполнен нулем

См. также mysql_field_seek()


mysql_fetch_lengths

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

array mysql_fetch_lengths(int result);

Возвращает: Массив, который соответствует длинам каждого поля в последней строке, выбранной mysql_fetch_row(), или false при ошибке .

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

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


mysql_fetch_object

mysql_fetch_object -- Получает строку результата как объект.
Описание

object mysql_fetch_object(int result);

Возвращает объект с свойствами, который соответствует полученной строке, или false если нет результата.

mysql_fetch_object() подобна mysql_fetch_array(), с одним различием - вместо массива возвращается объект. Это означает, что Вы можете иметь доступ к данным только по именам полей, а не по их параметрам (индексные числа в данном случае являются неверным обращением).

Вообще говоря, эта функция идентична mysql_fetch_array(), такая же быстрая как mysql_fetch_row() (различие незначительное).

Пример 1. mysql fetch object

<?php 
mysql_connect($host,$user,$password);
$result = mysql_db_query("database","select * from table");
while($row = mysql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
mysql_free_result($result);
?>

См. также: mysql_fetch_array() и mysql_fetch_row().


mysql_fetch_row

mysql_fetch_row -- Получите строку результата как пронумерованный массив
Описание

array mysql_fetch_row(int result);

Возвращает: Массив, который соответствует выбранным колонкам, или false если нет результата.

mysql_fetch_row() выбирает столбец данных из результата, и связывает его с определенным идентификатором результата(индексом элемента массива). Запрос возвращается как массив. Каждый столбец результата хранится в элементах массива, пронумерованного с нуля.

Последующий вызов функции mysql_fetch_row() должен возвратить следующую строку, или false если нет больше колонок.

См. также: mysql_fetch_array(), mysql_fetch_object(), mysql_data_seek(), mysql_fetch_lengths(), и mysql_result().


mysql_field_name

mysql_field_name -- Получает имя определенного поля в результате
Описание

string mysql_field_name(int result, int field_index);

mysql_field_name() возвращает имя указанного поля. Аргументами функции являются идентификатор результата и индекс поля, т.е. mysql_field_name($result,2);

Возвратит имя второй области в результат, связанный с идентификатором результата($result).

Для обратной совместимости также может быть использована функция mysql_fieldname().


mysql_field_seek

mysql_field_seek -- Устанавливает указатель запроса в определенное поле.
Описание

int mysql_field_seek(int result, int field_offset);

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

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


mysql_field_table

mysql_field_table -- Получает имя таблицы, в которой находится указанное поле.
Описание

string mysql_field_table(int result, int field_offset);

Получает имя таблицы поля. Для обратной совместимости также может быть использована mysql_fieldtable() .


mysql_field_type

mysql_field_type -- Получает тип указанного поля в результате
Описание

string mysql_field_type(int result, int field_offset);

mysql_field_type() подобна функции mysql_field_name() . Аргументы идентичны, но возвращается тип поля. Это будет что-то из "int", "real", "string", "blob", или другие типы, которые подробно описываются в документации MySQL.

Пример 1. mysql field types

<?php 
mysql_connect("localhost:3306");
mysql_select_db("wisconsin");
$result = mysql_query("SELECT * FROM onek");
$fields = mysql_num_fields($result);
$rows   = mysql_num_rows($result);
$i = 0;
$table = mysql_field_table($result, $i);
echo "Your '".$table."' table has ".$fields." fields and ".$rows." records <BR>";
echo "The table has the following fields <BR>"; 
while ($i < $fields) {
    $type  = mysql_field_type  ($result, $i);
    $name  = mysql_field_name  ($result, $i);
    $len   = mysql_field_len   ($result, $i);
    $flags = mysql_field_flags ($result, $i);
    echo $type." ".$name." ".$len." ".$flags."<BR>";
    $i++;
}
mysql_close();
?>

Для обратной совместимости mysql_fieldtype() также может быть использована.


mysql_field_flags

mysql_field_flags -- Получает флаги, связанные с указанным полем в результате
Описание

string mysql_field_flags(int result, int field_offset);

mysql_field_flags() возвращает флаги указанного поля. Флаги передаются как одно слово на флаг, разделенные одним пробелом, так, что Вы можете разделить возвращенную величину используя explode().

Если ваша текущая версия MySQL их поддерживает, могут быть получены следующие флаги : : "not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment", "timestamp".

Для обратной совместимости mysql_fieldflags() также может быть использована.


mysql_field_len

mysql_field_len -- Возвращает длину указанного поля
Описание

int mysql_field_len(int result, int field_offset);

mysql_field_len() возвращает длину указанного поля. Для обратной совместимости mysql_fieldlen() также может быть использована.


mysql_free_result

mysql_free_result -- Освобождает память результата
Описание

int mysql_free_result(int result);

mysql_free_result() должна быть использована только если Вы беспокоитесь об использовании слишком большого объема памяти, во время работы вашего скрипта. Вся используемая результатом память для определенного идентификатора результата автоматически будет освобождена.

Для обратной совместимости mysql_freeresult() также может быть использована.


mysql_insert_id

mysql_insert_id -- Получает id сгенерированный предыдущим выполнением SQL-запроса INSERT
Описание

int mysql_insert_id(int [link_identifier] );

mysql_insert_id() возвращает ID сгенерированнуые для поля с автоинкрементом(AUTO_INCREMENTED). Эта функция не использует аргументов. Она возвратит автоматически сгенерированный номер ID возвращенный последним запросом INSERT.


mysql_list_fields

mysql_list_fields -- Показывает список полей MySQL в результате запроса
Описание

int mysql_list_fields(string database_name, string table_name, int [link_identifier] );

mysql_list_fields() извлекает информацию о заданной tablename таблице. Аргументы - имя базы данных и имя таблицы. После выполнения возвращается указатель результата, который может использоваться функциями mysql_field_flags(), mysql_field_len(), mysql_field_name(), и mysql_field_type().

Идентификатор результата является положительным целым. Функция возвращает -1 если происходит ошибка. Строка описсания ошибки будет помещена в переменную $phperrmsg, и если функция не была вызвана как @mysql() то затем также будет выведено это описание ошибки.

Для обратной совместимости mysql_listfields() также может быть использована.


mysql_list_dbs

mysql_list_dbs -- Показывает список доступных Баз Данных на сервере
Описание

int mysql_list_dbs(int [link_identifier] );

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

Для обратной совместимости mysql_listdbs() также может быть использована.


mysql_list_tables

mysql_list_tables -- Показывает список таблиц в базе данных MySQL
Описание

int mysql_list_tables(string database, int [link_identifier] );

mysql_list_tables() берет имя базы данных и указатель результата очень подобно функции mysql_db_query(). Функция mysql_tablename() должна использоваться, чтобы извлечь фактические имена таблиц с указателя результата.

Для обратной совместимости mysql_listtables() также может быть использована.


mysql_num_fields

mysql_num_fields -- Получает количество полей в результате.
Описание

int mysql_num_fields(int result);

mysql_num_fields() получает количество полей в установленном результате.

См. также: mysql_db_query(), mysql_query(), mysql_fetch_field(), mysql_num_rows().

Для обратной совместимости mysql_numfields() также может быть использована.


mysql_num_rows

mysql_num_rows -- Получает количество столбцов в результате
Описание:

int mysql_num_rows(int result);

mysql_num_rows() получает количество столбцов в установленном результате

См. также: mysql_db_query(), mysql_query() и, mysql_fetch_row().

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


mysql_pconnect

mysql_pconnect -- Открывает устойчивое соединение с MySQL-сервером
Описание

int mysql_pconnect(string [hostname] [:port] , string [username] , string [password] );

Возвращает: Правильный MySQL идентификатор устойчивой связи при успешном выполнении , или false при ошибке.

mysql_pconnect() действует очень похоже на mysql_connect() с двумя важными различиями.

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

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

Потому этот тип связей назван 'устойчивый'.


mysql_query

mysql_query -- Отправляет SQL-запрос на MySQL
Описание

int mysql_query(string query, int [link_identifier] );

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

Эта функция возвращает TRUE или FALSE чтобы показать успешность выполнения запросов UPDATE, INSERT, и DELETE. При запросе SELECT она возвращает новый идентификатор результата. Ресурсы, использованные запросом затем могут быть освобождены вызовом функции mysql_free_result().

См. также: mysql_db_query(), mysql_select_db(), и mysql_connect().


mysql_result

mysql_result -- Получает данные результата
Описание

int mysql_result(int result, int row, mixed field);

mysql_result() возвращает содержимое одной ячейки из установленного результата MySQL. Аргументом поля может быть номер или имя поля, или параметр типа имя_таблицы-точка-имя_поля(fieldname.tablename). Если имя столбца заменено псевдонимом('select foo as bar from...'), используйте псевдоним вместо имени столбца.

Работая с больших результатами, Вы должны предусматривать использование одной из функций, которые выбирают целую строку(указано ниже) За счет того, что эти функции возвращают содержимое большого числа ячеек за один вызов функции, они ЗНАЧИТЕЛЬНО более быстрые чем mysql_result(). Также, имейте в виду, что определение аргумента поля числовым параметром, значительно более быстрое чем определение имени поля(fieldname) или использование аргумента tablename.fieldname.

Вызов mysql_result() не должен смешиваться с вызовами других функций, которые имеют дело с установленным результатом.

Рекомендуемые быстродействующие альтернативы: mysql_fetch_row(), mysql_fetch_array(), и mysql_fetch_object().


mysql_select_db

mysql_select_db -- Выбирает Базу Данных MySQL
Описание

int mysql_select_db(string database_name, int [link_identifier] );

Возвращает: true при успешном выполнении , false при ошибке

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

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

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

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


mysql_tablename

mysql_tablename -- Получает имя таблицы, содержащей указанное поле.
Описание

string mysql_tablename(int result, int i);

mysql_tablename() берет указатель результата возвращенный функцией mysql_list_tables() а также целочисленный индекс и возвращает имя таблицы. Функция mysql_num_rows() может использоваться для того, чтобы определить количество таблиц на данном указателе результата.

Пример 1. mysql_tablename() example

<?php 
mysql_connect ("localhost:3306");
$result = mysql_listtables ("wisconsin");
$i = 0;
while ($i < mysql_num_rows ($result)) {
    $tb_names[$i] = mysql_tablename ($result, $i);
    echo $tb_names[$i] . "<BR>";
    $i++;
}
?>

Назад, к содержанию