Поддержка баз данных в РНР

Циклы for и foreach

Начнем сразу с примера цикла for:

for(int i=1; i<=k; i++){ sum+=i;}

Этот пример подсчитывает сумму чисел от 1 до введенного пользователем числа k. Сумма записывается в переменную sum и выводится на экран.

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

int[] a = {-5, 4, 55};

int sum=0;

for(int i=0; i<3; i++){ sum+=a[i];}

пример цикла foreach:

int[] m = {-5, 4, 10};

int sum=0;

foreach(int i in m){ sum+=i;}

Т. е. мы пишем именно тип элементов массива. На самом деле foreach используется не только для массивов, но и для других объектов (например, для хэш-таблиц).

Циклы while бывают двух видов - while и do-while. Оба эти цикла используются, как правило, тогда, когда точно не известно, сколько раз цикл должен выполнится. Например, при вводе пользователем пароля или при подсчете чего-либо с определенной точностью. Оба эти цикла будут выполняться до тех пор, пока условие в круглых скобках после слова while будет истинно. Как только условие станет равным false, выполнение цикла прекращается. while может не выполниться ни одного раза, тогда как do-while по крайней мере один раз выполнится.

Пример Цикла while (c предусловием)

int i=0;

while (i < 10)
{ Console.WriteLine(i);
++i; };

Пример Цикла do-while (с постусловием)

int i=0;

do

{

Console.WriteLine(i);

++i;

} while (i < 10);

алгоритм выше останавливается в двух случаях: 1) либо i > j и элемент не был найден, 2) либо i <= k <= j и A[k] = искомый элемент.

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

using System.Linq;

int[]array = new int[] { 0, 1, 2, 3, 5, 8, 13 };

Console.WriteLine(array.Contains(4)); // False

Файлы классифиц в соответствии с доступом к ним. Файлы с последоват-ым доступом. При таком доступе приходится просматр все записи, предшеств искомой. Файлы с прямым доступом. Записи имеют порядк-ый номер, кот-у ставится в соотв адрес, где хранятся данные этой записи. Доступ к этому адресу прямой.Файлы с доступом по ключу. Поиск производ-ся по содерж 1 из полей записи, назыв-ое ключом записи.

Поиск данных в файле:

using (StreamReader sr = new StreamReader(@"D:\TestFile.txt"))

{ string line;

while ((line = sr.ReadLine())!= null)

{Console.WriteLine(line.Contains("5"));}

5. Классы и абстрагирование данных. Отношения между классами. Примеры на С++ или C#. Сопоставление с UML-представлением на диаграмме классов.

Классы — сердце каждого объектно-ориентированного языка. Класс представляет собой инкапсуляцию данных и методов для их обработки. Это справедливо для любого объектно-ориентированного языка. Языки отличаются в этом плане лишь типами данных, хранимых в виде членов, а также возможностями классов

ОПРЕДЕЛЕНИЕ КЛАССОВ.Поместив перед именем вашего класса ключевое слово class, вставьте члены класса, заключенные в фигурные скобки, например: class MySimpleClass
{
private long myClassID;
}
Этот простейший класс с именем MySimpleClass содержит единственный член — myClassID.

НАЗНАЧЕНИЕ КЛАССОВ.
Например, работник на некой фирме. У него есть такие свойства, как фамилия, возраст, стаж и т. п. Так вот, в этом случае удобно каждого работника описывать не рядом независимых переменных (строкового типа для фамилии, целого типа для возраста и стажа), а одной переменной типа Worker, внутри которой и содержатся переменные для фамилии, возраста и стажа. Здесь самое важное то, что в переменной типа Worker содержатся другие переменные. пример класса.

class Worker
{ public int age = 0;
public string name;
}
class Test
{ static void Main(string[] args)
{ Worker wrkl = new Worker();
wrkl.age = 30;
wrkl.name = "Петров Иван Сергеевич";
Console.WriteLine(wrkl.name + " - " + wrkl.age + " года");
} } }
Определяем класс Worker. Внутри этого класса существуют две переменные — целая age и name. (т. е. она будет для «внутреннего использования»).
Далее в строчке Worker wrkl = new Worker();мы заводим экземпляр класса в куче (heap) и возвращаем на него ссылку. Затем в строчках
wrkl.age = 30; wrkl.name = "Петров Иван Сергеевич";
Console.WriteLine(wrkl.name + " - " + wrkl.age + " года"); //мы используем наш класс, //присваивая некоторые значения для возраста и имени и выводя их потом на экран.

Модификатор доступа

public Член доступен вне определения класса и иерархии производных классов

protected Член невидим за пределами класса, к нему могут обращаться только производные классы

private Член недоступен за пределами области видимости определяющего его класса. Поэтому доступа к этим членам нет даже у производных классов

internal Член видим только в пределах текущей единицы компиляции. Модификатор доступа internal в плане ограни чения доступа является гибридом public и protected, зависимым от местоположения кода

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

Worker wrkl = new Worker();
Поэтому, объявляя объект, создайте где-нибудь в программе его экземпляр с помощью ключевого слова new:

Constructor App =new ConstructorApp();

Объекты объявляются перед использованием или созданием их экземпляров с помощью new, если вы объявляете один класс внутри другого. Такая вложенность классов называется включение (containment) или агрегирование (aggregation)

ВЛОЖЕННЫЕ КЛАССЫ

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

class ClassA

{

prvate class ClassB

{ public int z; }

6. Доступ к БД средс-ми PHP

План ответа:

1. Поддержка баз данных в РНР.

2. Установка соединения с сервером БД

3. Выбор БД

4. Выполнение запросов к БД

5. Получение и обработка результатов запроса.

6. Отсоединение от БД

7. Освобождение ресурсов.

Поддержка баз данных в РНР.

В РНР реализована мощная поддержка практически всех серверов баз данных, в том числе:

Dbase, Emopress, Informix, InterBase, MySQL, MS SQL Server, PostgreSQL, Sybase, UNIX dbm и др.

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

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

Рассмотрим основные этапы взаимодействия РНР с базой данных на примере MySQL.

1.1. Установить соединение с сервером MySQL. Если попытка завершается неудачей, вывести соответствующее сообщение и завершить процесс.

1.2. Выбрать базу данных сервера MySQL. Если попытка выбора завершится неудачей, вывести соответствующее сообщение и завершить процесс.

1.3. Обработать запросы к выбранной базе данных.

1.4. После завершения обработки запросов закрыть соединение с сервером баз данных.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: