PHP

PHP MySQL



Выполнение запросов

Выполнение SQL-запросов осуществляется при помощи функции mysqlquery

resource mysql_query(string query[, resource link_identifier])

query - строка с запросом,
link_identifier - дескриптор соединения, возвращаемый функцией mysql_connect().

Если открытые соединения отсутствуют, функция пытается соединиться с СУБД, аналогично функции mysql connect () без параметров.

При передаче запроса функции mysql_query () точку с запятой в конце запроса, обязательную при работе с клиентом mysql, можно не ставить.

Функция возвращает дескриптор запроса в случае успеха и false в случае неудачного выполнения запроса.

Приведем пример скрипта, который создает новую таблицу cars.
<?php
include "config.php";
if(mysql_query("
CREATE    TABLE    cars    ( 
id INT    NOT   NULL   AUTO_INCREMENT, 
name    TINYTEXT, 
label    TINYTEXT, 
PRIMARY   KEY    (id) 
) ENGINE=MyISAM
"))
{
echo "Таблица создана успешно";
}
else
{
exit(mysql_error());
}
?>

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

Выборка из базы данных
Дескриптор, возвращаемый функцией mysql_query (), используется далее для получения значений, возвращаемых СУБД.


Обычно это осуществляется при помощи одной из пяти функций:

- mysql_result (),
- mysqlf etch_row (),
- mysql_fetch_assoc(),
- mysql_fetch_array()
- mysql_fetch_object().

Пусть имеется таблица cars, содержащая три поля: первичный ключ (id), название авто (name) и ее марка (label).

Приведем SQL-запрос, создающий эту таблицу
mysql> CREATE TABLE cars (
id INT(6) NOT NULL AUTO_INCREMENT,
name TEXT,
label TEXT,
PRIMARY KEY (id)
) ENGINE=MyISAM;

Первая функция mysql_result () возвращает результат запроса, выполненного функцией mysql_query().

С ее помощью можно получить доступ к отдельному полю записи.

mixed mysql_result(resource result, int row [, mixed field])

В качестве первого аргумента result функция принимает дескриптор запроса, возвращаемый функцией mysql_query ().

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

Третий необязательный параметр field — это имя поля таблицы.

Вывести имя авто, которое первым найдется в базе данных, можно при Помощи следующего скрипта
<?php
// Устанавливаем соединение с базой данных
include "config.php";
// Выполняем SQL-запрос
$ath = mysql_query("SELECT name FROM cars")
// Обрабатываем результаты запроса
if($ath) echo mysql_result($ath, 0, `name`) ;
else exit(mysql_error()) ;
?>

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

Синтаксис функции следующий:

array mysql_fetch_row(resource result)

В качестве единственного аргумента result функция принимает дескриптор запроса, возвращаемый функцией mysql_query ().

Возвращает массив, содержащий данные обработанного ряда, или false, если рядов больше нет.

При работе с данным массивом удобно использовать функцию list(), преобразующую элементы массива в переменные.
<?php
// Устанавливаем соединение с базой данных
include "config.php";
// Выполняем SQL-запрос
$ath = mysql_query("SELECT * FROM cars");
// Проверяем успешность выполнения SQL-запроса
if(!$ath) exit(mysql_erorr());
// Определяем таблицу и заголовок
// Так как запрос может возвращать несколько строк, применяем цикл
echo "<table>";
while(list($id, $name, $label) = mysql_fetch_row($ath))
{
echo "<tr>
<td>$id_author</td>
<td>$name</td>
<td>$password</td>
</tr>”;
}
echo "</table>";
?>

Функция mysql_fetch_assoc () обрабатывает результаты запроса и возвращает ассоциативный массив.

Синтаксис функции:

array mysql_fetch_assoc(resource result)

В качестве единственного аргумента result функция принимает дескриптор запроса, возвращаемый функцией mysql_query(). Возвращает массив, содержащий данные обработанного ряда, или false, если рядов больше нет.

Пример использования mysql_fetch_assoc ()
<?php
// Устанавливаем соединение с базой данных
include "config.php";
// Выполняем SQL-запрос
$ath = mysql_query("select * from cars");
// Проверяем успешность выполнения SQL-запроса
if(!$ath) exit(mysql_error());
// Определяем таблицу и заголовок
echo "<table>";
while($cars = mysql_fetch_assoc($ath))
{
echo "<tr>
<td>".$cars[`id`]."</td>
<td>".$cars[`name`]."</td>
<td>".$cars[`label`]."</td>
</tr>”;
}
echo "</table>";
?>

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

Синтаксис данной функции:

array mysql_fetch_array(resource result [, int result_type])

В качестве первого аргумента result функция принимает дескриптор запроса, возвращаемый функцией mysql_query().

Второй необязательный параметр может принимать три значения:

MYSQLASSOC — возврат результата работы в виде ассоциативного массива;
MYSQLNUM — возврат результата работы в виде численного массива;
MYSQL_BOTH— возврат результата работы в виде массива, содержащего как численные, так и ассоциативные индексы.
По умолчанию второй аргумент принимает значение MYSQL_BOTH.

Режимы работы функции mysql_fetch_array (), принимающей в качестве второго аргумента константы MYSQL_ASSOC И MYSQL_NUM, аналогичны функциям mysql_fetch_assoc () И mysql_fetch_row () соответственно.

При возврате ассоциативного массива в качестве индексов выступают имена столбцов таблицы, из которой производится выборка. Вот как с помощью этой функции можно вывести все строки таблицы cars
<?php
// Устанавливаем соединение с базой данных
include "config.php";
// Выполняем SQL-запрос
$ath = mysql_query("SELECT * FROM cars");
// Проверяем успешность выполнения SQL-запроса
if(!$ath) exit(mysql_error());
// Определяем таблицу и заголовок
echo "<table>";
// Так как запрос возвращает несколько строк, применяем цикл
while($cars = mysql_fetch_array($ath))
{
echo "<tr>
<td>".$cars[`id`]."</td>
<td>".$ cars[`name`]."</td>
<td>".$cars[`label`]."</td>
</tr>”;
}
echo "</table>";
?>

Функция mysql_fetch_object() обрабатывает результат запроса функции Mysql_query () и возвращает поля таблицы в виде объекта, имена членов которого совпадают с именами полей таблицы.

Синтаксис функции:

object mysql_fetch_object(resource result)

В качестве единственного аргумента result функция принимает дескриптор запроса, возвращаемый функцией mysql_query (). Возвращает объект со свойствами, соответствующими колонкам в обработанном ряду, или false, если рядов больше нет.

Имена полей, возвращаемых этой функцией, не зависят от регистра.
<?php
// Устанавливаем соединение с базой данных
include "config.php";
// Выполняем SQL-запрос
$ath = mysql_query("SELECT * FROM cars");
// Проверяем успешность выполнения SQL-запроса
if(!$ath) exit(mysql_error());
while($row = mysql_fetch_object($ath))
{
echo "<p>name: ".$row->name."</p>";
echo "<p>id: ".$row->url."</p>";
echo "<p>label: ".$row->email."</p>";
}
?>
Добавлено: 13 Сентября 2013 02:28:33 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...