MySQL строки

Определение количества строк в выборке



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

Для этого предназначена функция mysql_num_rows (), которая имеет следующий синтаксис:

int mysql_num_rows(resource result)

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

Эта функция работает только с запросами SELECT.

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

Функция mysql_num_fields() позволяет определить число столбцов в результате.

Функция mysql_query () в случае успеха всегда возвращает дескриптор соединения и f alse только в случае ошибочного синтаксиса SQL-запроса, поэтому проверка соответствия пароля в листинге ниже ошибочна, т. к. такая проверка будет срабатывать в любом случае, даже если число возвращенных записей окажется равным нулю.

Пример ошибочной проверки пароля:
<?php
// Устанавливаем соединение с базой данных
include "config.php";
// Формируем SQL-запрос
$query = "SELECT * FROM authors
WHERE name = `имя` AND pass = `пароль`";
// Выполняем SQL-запрос
$ath = mysql_query($query);
// Проверяем успешность выполнения SQL-запроса
if(!$ath)
{
exit("Ошибка авторизации!");
}
else
{
Echo "Авторизация пройдена!";
}
?>

В этом случае следует использовать функцию mysql_num_rows (), как это продемонстрировано в листинге ниже.

Пример корректной проверки пароля
<?php
// Устанавливаем соединение с базой данных
include "config.php";
// Формируем SQL-запрос
$query = "SELECT * FROM authors
WHERE name = `имя` AND pass = `пароль`";
// Выполняем SQL-запрос
$ath = mysql_query($query);
// Проверяем успешность выполнения SQL-запроса
if(mysql_num_rows($ath) == 0)
{
exit("Ошибка авторизации!");
}
else
{
echo("Авторизация пройдена!");
}
?>

Число строк можно так же определить при помощи отдельного SQL-запроса, воспользовавшись встроенной функцией MySQL — COUNT ():
SELECT COUNT(*) FROM authors;
Добавлено: 12 Сентября 2013 11:25:59 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...