battles/Database/Statement.php

168 lines
3.7 KiB
PHP

<?php
/**
* @author Vasiliy Makogon, makogon-vs@yandex.ru
* @link https://github.com/Vasiliy-Makogon/Database/
*
* Обёртка над объектом mysqli_result.
*/
namespace Krugozor\Database\Mysql;
class Statement
{
/**
* Рузультат SQL-операции в виде объекта mysqli_result.
*
* @var mysqli_result
*/
private $mysqli_result = null;
/**
* @param mysqli_result
*/
public function __construct(\mysqli_result $mysqli_result)
{
$this->mysqli_result = $mysqli_result;
}
/**
* Извлекает результирующий ряд в виде ассоциативного массива.
*
* @see mysqli_fetch_assoc
* @param void
* @return array
*/
public function fetch_assoc()
{
return mysqli_fetch_assoc($this->mysqli_result);
}
/**
* Извлекает результирующий ряд в виде массива.
*
* @see mysqli_fetch_row
* @param void
* @return array
*/
public function fetch_row()
{
return mysqli_fetch_row($this->mysqli_result);
}
/**
* Извлекает результирующий ряд в виде объекта.
*
* @see mysqli_fetch_object
* @param void
* @return stdClass
*/
public function fetch_object()
{
return mysqli_fetch_object($this->mysqli_result);
}
/**
* Возвращает результат в виде массива ассоциативных массивов.
*
* @param void
* @return array
*/
public function fetch_assoc_array()
{
$array = array();
while ($row = mysqli_fetch_assoc($this->mysqli_result)) {
$array[] = $row;
}
return $array;
}
/**
* Возвращает результат в виде массива массивов.
*
* @param void
* @return array
*/
public function fetch_row_array()
{
$array = array();
while ($row = mysqli_fetch_row($this->mysqli_result)) {
$array[] = $row;
}
return $array;
}
/**
* Возвращает результат в виде массива объектов.
*
* @param void
* @return array
*/
public function fetch_object_array()
{
$array = array();
while ($row = mysqli_fetch_object($this->mysqli_result)) {
$array[] = $row;
}
return $array;
}
/**
* Возвращает значение первого поля результирующей таблицы.
*
* @param void
* @return string
*/
public function getOne()
{
$row = mysqli_fetch_row($this->mysqli_result);
return $row[0];
}
/**
* Возвращает количество рядов в результате.
* Эта команда верна только для операторов SELECT.
*
* @see mysqli_num_rows
* @param void
* @return int
*/
public function getNumRows()
{
return mysqli_num_rows($this->mysqli_result);
}
/**
* Возвращает объект результата mysqli_result.
*
* @param void
* @return mysqli_result
*/
public function getResult()
{
return $this->mysqli_result;
}
/**
* Освобождает память занятую результатами запроса.
*
* @param void
* @return void
*/
public function free()
{
$this->mysqli_result->free();
}
public function __destruct()
{
$this->free();
}
}