Класс mysqli

(PHP 5, PHP 7)

Введение

Представляет связь между PHP и базой данных MySQL.

Обзор классов

mysqli {
/* Свойства */
string $client_info;
int $errno;
string $error;
string $host_info;
string $server_info;
string $info;
string $sqlstate;
/* Методы */
__construct ([ string $host = ini_get("mysqli.default_host") [, string $username = ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [, string $dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] )
bool autocommit ( bool $mode )
bool change_user ( string $user , string $password , string $database )
string character_set_name ( void )
bool close ( void )
bool commit ([ int $flags [, string $name ]] )
bool debug ( string $message )
bool dump_debug_info ( void )
object get_charset ( void )
string get_client_info ( void )
bool get_connection_stats ( void )
mysqli_warning get_warnings ( void )
mysqli init ( void )
bool kill ( int $processid )
bool more_results ( void )
bool multi_query ( string $query )
bool next_result ( void )
bool options ( int $option , mixed $value )
bool ping ( void )
public static int poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec ] )
mysqli_stmt prepare ( string $query )
mixed query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
bool real_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] )
string escape_string ( string $escapestr )
bool real_query ( string $query )
public mysqli_result reap_async_query ( void )
public bool refresh ( int $options )
bool rollback ([ int $flags [, string $name ]] )
int rpl_query_type ( string $query )
bool select_db ( string $dbname )
bool send_query ( string $query )
bool set_charset ( string $charset )
bool set_local_infile_handler ( mysqli $link , callable $read_func )
bool ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher )
string stat ( void )
mysqli_stmt stmt_init ( void )
mysqli_result store_result ([ int $option ] )
mysqli_result use_result ( void )
}

Содержание

  • mysqli::$affected_rows — Получает число строк, затронутых предыдущей операцией MySQL
  • mysqli::autocommit — Включает или отключает автоматическую фиксацию изменений базы данных
  • mysqli::begin_transaction — Starts a transaction
  • mysqli::change_user — Позволяет сменить пользователя подключенного к базе данных
  • mysqli::character_set_name — Возвращает кодировку по умолчанию, установленную для соединения с БД
  • mysqli::$client_info — Получает информацию о клиенте MySQL
  • mysqli::$client_version — Возвращает информацию о клиенте MySQL в виде строки
  • mysqli::close — Закрывает ранее открытое соединение с базой данных
  • mysqli::commit — Фиксирует текущую транзакцию
  • mysqli::$connect_errno — Возвращает код ошибки последней попытки соединения
  • mysqli::$connect_error — Возвращает описание последней ошибки подключения
  • mysqli::__construct — Устанавливает новое соединение с сервером MySQL
  • mysqli::debug — Выполняет процедуры отладки
  • mysqli::dump_debug_info — Журналирование отладочной информации
  • mysqli::$errno — Возвращает код ошибки последнего вызова функции
  • mysqli::$error_list — Возвращает список ошибок выполнения последней запущенной команды
  • mysqli::$error — Возвращает строку с описанием последней ошибки
  • mysqli::$field_count — Возвращает число столбцов, затронутых последним запросом
  • mysqli::get_charset — Возвращает набор символов в виде объекта
  • mysqli::get_client_info — Получает информацию о клиенте MySQL
  • mysqli_get_client_stats — Возвращает статистику клиента для каждого процесса
  • mysqli_get_client_version — Возвращает информацию о клиенте MySQL в виде строки
  • mysqli::get_connection_stats — Возвращает статистику соединения с клиентом
  • mysqli::$host_info — Возвращает строку, содержащую тип используемого соединения
  • mysqli::$protocol_version — Возвращает версию используемого MySQL протокола
  • mysqli::$server_info — Возвращает версию MySQL сервера
  • mysqli::$server_version — Возвращает версию сервера MySQL, представленную в виде integer
  • mysqli::get_warnings — Получает результат SHOW WARNINGS
  • mysqli::$info — Извлекает информацию о последнем выполненном запросе
  • mysqli::init — Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()
  • mysqli::$insert_id — Возвращает автоматически генерируемый ID, используя последний запрос
  • mysqli::kill — Запрос для сервера завершить выполнение процесса MySQL
  • mysqli::more_results — Проверка, есть ли еще результаты в мультизапросе
  • mysqli::multi_query — Выполняет запрос к базе данных
  • mysqli::next_result — Подготовка следующего доступного результирующего набора из multi_query
  • mysqli::options — Задание настроек
  • mysqli::ping — Проверяет работоспособность соединения или пытается переподключиться, если соединение разорвано
  • mysqli::poll — Опрос подключений
  • mysqli::prepare — Подготавливает SQL выражение к выполнению
  • mysqli::query — Выполняет запрос к базе данных
  • mysqli::real_connect — Устанавливает соединение с сервером mysql
  • mysqli::real_escape_string — Экранирует специальные символы в строке для использования в SQL выражении, используя текущий набор символов соединения
  • mysqli::real_query — Выполнение SQL запроса
  • mysqli::reap_async_query — Получение результата асинхронного запроса
  • mysqli::refresh — Обновление
  • mysqli::release_savepoint — Removes the named savepoint from the set of savepoints of the current transaction
  • mysqli::rollback — Откат текущей транзакции
  • mysqli::rpl_query_type — Возвращает RPL тип запроса
  • mysqli::savepoint — Set a named transaction savepoint
  • mysqli::select_db — Устанавливает базу данных для выполняемых запросов
  • mysqli::send_query — Отправка запроса и возврат
  • mysqli::set_charset — Задает набор символов по умолчанию
  • mysqli::set_local_infile_default — Отмена привязки callback-функции для команды load local infile
  • mysqli::set_local_infile_handler — Задает callback-функцию для команды LOAD DATA LOCAL INFILE
  • mysqli::$sqlstate — Возвращает код состояния SQLSTATE последней MySQL операции
  • mysqli::ssl_set — Используется для установления безопасных соединений, используя SSL
  • mysqli::stat — Получение информации о текущем состоянии системы
  • mysqli::stmt_init — Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare
  • mysqli::store_result — Передает результирующий набор последнего запроса
  • mysqli::$thread_id — Возвращает ID процесса текущего подключения
  • mysqli::thread_safe — Показывает, безопасна ли работа с процессами
  • mysqli::use_result — Готовит результирующий набор на сервере к использованию
  • mysqli::$warning_count — Возвращает количество предупреждений из последнего запроса заданного подключения

Коментарии

<?php

include_once("data/Book.php");
include_once(
"DatabaseFactory.php");
// CRUD methods for book objects
class BookDB{

    private static function 
getConnection(){
        return 
DatabaseFactory::getDatabase();
    }

    public static function 
getAll(){
       
$query "SELECT * FROM Book";
       
// Execute query
       
$conn self::getConnection();
       
$results $conn->executeQuery($query);

       
$resultsArray = array();

        for(
$i 0$i $results->num_rows$i++){
           
$row $results->fetch_array(); // Retrieves the current selected row

            // Make a book
           
$book self::convertRowToObject($row);

           
// Add book to resultsArray
           
$resultsArray[$i] = $book;
        }
        return 
$resultsArray;
    }

    public static function 
convertRowToObject($row){
        return new 
Book(
           
$row["BookId"],
           
$row["Title"],
           
$row["Releasedate"],
           
$row["Price"],
           
$row["EmailPublisher"]
        );
    }

    public static function 
insert($book){
        return 
self::getConnection()->executeQuery("INSERT INTO Book(Title, Releasedate, Price, EmailPublisher) VALUES ('?', '?', '?', '?')", array($book->title$book->releasedate$book->priceExclVAT$book->emailPublisher));
    }

}

?>
2020-01-24 07:14:04
http://php5.kiev.ua/manual/ru/class.mysqli.html
<?php

class Database{

    protected 
$url;
    protected 
$user;
    protected 
$password;
    protected 
$db;
    protected 
$connection null;

    public function 
__construct($url$user$password$db)
    {
       
$this->url $url;
       
$this->user $user;
       
$this->password $password;
       
$this->db $db;
    }
    public function 
__destruct()
    {
        if(
$this->connection != null){
           
$this->closeConnection();
        }
    }
    protected function 
makeConnection(){

       
$this->connection = new mysqli($this->url$this->user$this->password$this->db);
        if(
$this->connection->connect_error){
            echo 
"Fail" $this->connection->connect_error;
        }
    }
    protected function 
closeConnection(){
        if(
$this->connection != null){
           
$this->connection->close();
           
$this->connection null;
        }
    }
    public function 
executeQuery($query$params null){
       
// Is there a DB connection?
       
$this->makeConnection();
       
// Adjust query with params if available
       
if($params != null){
           
// Change ? to values from parameter array
           
$queryParts preg_split("/\?/"$query);
           
// if amount of ? is not equal to amount of values => error
           
if(count($queryParts) != count($params) + 1){
                return 
false;
            }
           
// Add first part
           
$finalQuery $queryParts[0];
           
// Loop over all parameters
           
for($i 0$i count($params); $i++){
               
// Add clean parameter to query
               
$finalQuery $finalQuery $this->cleanParameters($params[$i]) . $queryParts[$i 1];
            }
           
$query $finalQuery;
        }
       
// Check for SQL injection

       
$result $this->connection->query($query);
        return 
$result;
    }
    protected function 
cleanParameters($parameters){
       
// prevent SQL injection
       
$result $this->connection->real_escape_string($parameters);
        return 
$result;
    }
}

?>
<?php
include_once("Database.php");

class 
DatabaseFactory{
   
// Singleton
   
private static $connection;

    public static function 
getDatabase(){
        if(
self::$connection == null){
           
$url "dt5.ehb.be";
           
$user "1920WEBINT038";
           
$passw "94617528";
           
$db "1920WEBINT038";
           
self::$connection = new Database($url$user$passw$db);
        }
        return 
self::$connection;
    }
}

?>
<?php

class Book{
    public 
$bookId;
    public 
$title;
    public 
$releasedate;
    public 
$priceExclVAT;
    public 
$emailPublisher;

    public function 
__construct($bookId$title$releasedate$priceExclVAT$emailPublisher)
    {
       
$this->bookId $bookId;
       
$this->title $title;
       
$this->releasedate $releasedate;
       
$this->priceExclVAT $priceExclVAT;
       
$this->emailPublisher $emailPublisher;
    }

}

?>
2020-01-24 07:14:19
http://php5.kiev.ua/manual/ru/class.mysqli.html

    Поддержать сайт на родительском проекте КГБ