Процедурные функции MySQLi

Опубликовано: 5 Января, 2022

MySQLi (MySQL Improved) предоставляет процедурный и объектно-ориентированный интерфейс для данных и управления ими. Функции MySQL расширения i позволяют пользователю получить доступ к его серверам баз данных. Усовершенствованное расширение MySQL специально разработано для работы с MySQL версии 4.1.13 и новыми версиями.

Преимущества использования подготовленных выписок:

  1. Подготовленные операторы очень эффективны, особенно для предотвращения атак с использованием SQL-инъекций.
  2. Подготовленные отчеты используются повторно. Это также сокращает время синтаксического анализа и накладные расходы, поскольку подготовка запроса выполняется только один раз.
  3. База данных анализирует, компилирует, оптимизирует оператор запроса и сохраняет результат.
  4. Связывание параметров с запросом сводит к минимуму общую пропускную способность, поскольку параметры отправляются по мере необходимости, вместо отправки всего запроса.
  5. Связывание параметров с заполнителями безопаснее и проще, поскольку правильное форматирование выполняется автоматически.
  6. Отправляя значения заполнителей на сервер MySQL, он следует протоколу клиент-сервер.
  7. Он выполняет конкретную инструкцию запроса несколько раз с различным набором переменных, что эффективно снижает затраты.
  8. Это также экономит на копировании и преобразовании данных.
  9. Подготовленные операторы менее подвержены ошибкам, поскольку сначала оператор анализируется, а затем проанализированные значения используются сервером.

Мы не можем охватить все в рамках этой темы, но давайте рассмотрим некоторые важные процедурные функции.
MySQLi.

1. mysqli_connect ():
Как вы знаете, перед выполнением любых операций, связанных с базой данных, вам необходимо установить соединение с сервером базы данных MySQL. Если соединение установлено успешно, возвращается идентификатор ресурса соединения с базой данных. Если при соединении происходит сбой, он просто выдает ошибку.

<?php
// Database configuration
$host = "localhost" ;
$dbuser = "root" ;
$dbpass = "" ;
$dbname = "GFG" ;
// Create database connection
mysqli_connect( $host , $dbuser , $dbpass , $dbname );
// Check connection
if (mysqli_connect_error())
{
echo "Connection establishing failed!" ;
}
else
{
echo "Connection established successfully." ;
}
?>

Выход:

Connection established successfully. 

2. mysqli_connect_error ():
Функция MySQLi выдает ошибку, если соединение не установлено успешно, и функция сохраняет ошибку в предыдущем вызове mysqli_connect (). Если ошибок не обнаружено, возвращается NULL. Если обнаружена какая-либо ошибка, возвращается сообщение об ошибке.

Примечание:

  • Чтобы протестировать mysqli_connect_error () , остановите сервер MySQL в панели управления XAMPP, а затем вызовите указанный выше код PHP с mysqli_connect ().
  • Если display_errors включен в конфигурации PHP, вы можете увидеть ошибку mysqli_connect_error (), которая возвращает следующее сообщение.
 Соединение не удалось, поскольку целевая машина активно отказалась от него.

Примечание:
В хорошей практике программирования лучше НЕ показывать сообщения об ошибках. Для устранения неполадок используйте mysqli_connect_error () для регистрации ошибки, как указано в приведенном ниже коде.

<?php
// Database configuration
$host = "localhost" ;
$dbuser = "root" ;
$dbpass = "" ;
$dbname = "GFG" ;
// Create database connection
mysqli_connect( $host , $dbuser , $dbpass , $dbname );
// Check connection
if (mysqli_connect_error())
{
echo "Connection establishing failed!" ;
}
else
{
echo "Connection established successfully." ;
}
?>

3. mysqli_select_db ():
Эта функция mySQLi используется для изменения базы данных по умолчанию для установления соединения.

<?php
// Database configuration
$host = "localhost" ;
$dbuser = "root" ;
$dbpass = "" ;
$dbname = "GFG" ;
$dbtest = "GFG_TEST" ;
// Create database connection
$conn = mysqli_connect( $host , $dbuser , $dbpass , $dbname );
//write some code for database "GFG"
// Change database to "GFG_TEST"
mysqli_select_db( $conn , $dbtest );
// PHP code for database "GFG_TEST"...
mysqli_close( $conn );
?>

Результат:
Это изменит текущую базу данных на GFG_TEST

4. mysqli_debug ():
Каждому веб-разработчику необходимо обратиться к файлам журнала, чтобы начать устранение неполадок для улучшения производительности приложения. Вышеупомянутая функция mySQLi используется в коде для всех целей отладки.

<?php
//create a trace file in the localhost
mysqli_debug( "d:t:o,/temp/client.trace" );
?>

Примечание:
Пользователь должен скомпилировать клиентскую библиотеку MySQL, чтобы использовать вышеуказанную функцию для поддержки отладки. Эта функция в случае успеха вернет ИСТИНА.

5. mysqli_close ():
Эта функция MySQLi используется для закрытия ранее подключенной базы данных. Эта функция вернет ИСТИНА при успешном закрытии, в противном случае она вернет ЛОЖЬ.

<?php
// Database configuration
$host  = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "GFG";
  
// Create database connection
$conn = mysqli_connect($host, $dbuser, $dbpass, $dbname);
//some php code
if(mysqli_close($conn))
echo "Connection closed successfully.";
?>

Выход:

 Соединение успешно закрыто.

6. mysqli_prepare ():
Вышеупомянутая функция MySQLi используется для подготовки запроса MySQL к выполнению. Он возвращает объект оператора для дальнейших операций и возвращает FALSE, если возникает какая-либо ошибка.

<?php
// Database configuration
$host = "localhost" ;
$dbuser = "root" ;
$dbpass = "" ;
$dbname = "GFG" ;
// Create database connection
$conn = mysqli_connect( $host , $dbuser , $dbpass , $dbname );
// prepare the mysql query statement and bind parameters
$query = mysqli_prepare("INSERT INTO items_info (item_name, description)
VALUES (?, ?)");
$query ->bind_param( "ss" , $itemname , $description );
// set parameters and execute
$itemname = "Shampoo" ;
$description = "Hairfall preventing protein shampoo" ;
$query ->execute();
echo "New record inserted successfully" ;
mysqli_close();
?>

Выход:

 Новая запись успешно вставлена

7. mysqli_query ():
Эта функция MySQLi выполняет или выполняет запрос в данной базе данных.

<?php
// Database configuration
$host = "localhost" ;
$dbuser = "root" ;
$dbpass = "" ;
$dbname = "GFG" ;
// Create database connection
$conn = mysqli_connect( $host , $dbuser , $dbpass , $dbname );
// performs the insert query
mysqli_query( $conn ,"INSERT INTO items_info (item_name, description)
VALUES ( 'Nailpolish' , 'Colorbar Pink one' )");
echo "Inserted successfully" ;
mysqli_close( $conn );
?>

Выход:

 Вставлено успешно

8. mysqli_rollback ():
Функция mysqli откатывает текущую транзакцию для данного соединения с базой данных. Выключите автоматическую фиксацию, выполните запрос, затем снова зафиксируйте запрос, а затем откатите текущий
сделка.

<?php
// Database configuration
$host = "localhost" ;
$dbuser = "root" ;
$dbpass = "" ;
$dbname = "GFG" ;
// Create database connection
$conn = mysqli_connect( $host , $dbuser , $dbpass , $dbname );
// Set autocommit to off
mysqli_autocommit( $conn ,FALSE);
// performs the insert query
mysqli_query( $conn ,"INSERT INTO items_info (item_name, description)
VALUES ( 'Shoes' , 'Adidas Brand' )");
echo "Inserted successfully" ;
// Commit transaction
mysqli_commit( $conn );
// Rollback transaction
mysqli_rollback( $conn );
mysqli_close( $conn );
?>

9. mysqli_fetch_row ():
Вышеупомянутая функция MySQLi используется для извлечения одной строки из набора результатов в виде пронумерованного массива. Каждый вызов вышеуказанной функции возвращает следующую строку из набора результатов. Если строки не выбраны, возвращается FALSE.

<?php
// Database configuration
$host = "localhost" ;
$dbuser = "root" ;
$dbpass = "" ;
$dbname = "GFG" ;
// Create database connection
$conn = mysqli_connect( $host , $dbuser , $dbpass , $dbname );
$query = "SELECT item_name,description from items_info" ;
if ( $result =mysqli_query( $conn , $query ))
{
// Fetch one and one row
while ( $row =mysqli_fetch_row( $result ))
{
echo " Item name :" . $row [0]. " , " ;
echo " Description : " . $row [1];
echo nl2br ( " " );
} //end while
// Free result set
mysqli_free_result( $result );
} // end if
mysqli_close( $conn );
?>

Результат:
Он покажет все строки с именем элемента , описанием

10. mysqli_field_count ():
Вышеупомянутая функция MySQLi используется для возврата количества столбцов для самого последнего запроса. Он возвращает общее количество столбцов в наборе результатов.

<?php
// Database configuration
$host = "localhost" ;
$dbuser = "root" ;
$dbpass = "" ;
$dbname = "GFG" ;
// Create database connection
$conn = mysqli_connect( $host , $dbuser , $dbpass , $dbname );
$query = "SELECT * from items_info" ;
mysqli_query( $conn , $query );
$total_columns = mysqli_field_count( $conn );
echo $total_columns ;
mysqli_close( $conn );
?>

Выход:

 4

11. mysqli_fetch_array ():
Вышеупомянутая функция MySQLi используется для извлечения строки как ассоциативного, числового массива или обоих типов массивов из набора результатов.

<?php
// Database configuration
$host = "localhost" ;
$dbuser = "root" ;
$dbpass = "" ;
$dbname = "GFG" ;
// Create database connection
$conn = mysqli_connect( $host , $dbuser , $dbpass , $dbname );
$query = "SELECT item_name,description from items_info" ;
$result =mysqli_query( $conn , $query );
// Gets the Numeric array
$row =mysqli_fetch_array( $result ,MYSQLI_NUM);
echo " Item name :" . $row [0];
echo "," ;
echo " Description : " . $row [1];
echo nl2br ( " " );
// Gets the Associative array
$row =mysqli_fetch_array( $result ,MYSQLI_ASSOC);
echo " Item name :" . $row [ "item_name" ];
echo "," ;
echo " Description : " . $row [ "description" ];
// Free the result set
mysqli_free_result( $result );
mysqli_close( $conn );
?>

Выход:

 таблица массив

12. mysqli_fetch_all ():
Функция MySQLi выбирает все строки и возвращает набор результатов в виде ассоциативного массива, числового массива или обоих.

<?php
// Database configuration
$host = "localhost" ;
$dbuser = "root" ;
$dbpass = "" ;
$dbname = "GFG" ;
// Create database connection
$conn = mysqli_connect( $host , $dbuser , $dbpass , $dbname );
$query = "SELECT item_name from items_info" ;
$result = mysqli_query( $conn , $query );
$rowcount =mysqli_num_rows( $result );
// Gets the Associative array
$row = mysqli_fetch_all( $result ,MYSQLI_ASSOC);
print_r( $row );
for ( $i =0; $i < $rowcount ; $i ++)
{
echo "<br> " . $row [ $i ][ 'item_name' ];
}
// Free the result set
mysqli_free_result( $result );
mysqli_close( $conn );
?>

Примечание. Указанная выше функция доступна только с собственным драйвером MySQL.

13. mysqli_free_result ():
Вышеупомянутая функция MySQLi освобождает память выбранных строк набора результатов.

<?php
// Database configuration
$host = "localhost" ;
$dbuser = "root" ;
$dbpass = "" ;
$dbname = "GFG" ;
// Create database connection
$conn = mysqli_connect( $host , $dbuser , $dbpass , $dbname );
$query = "SELECT item_name,description from items_info" ;
if ( $result =mysqli_query( $conn , $query ))
{
while ( $row =mysqli_fetch_row( $result ))
{
echo " Item name :" . $row [0]. "," ;
echo " Description : " . $row [1];
echo nl2br ( " " );
} //end while
// Free result set
mysqli_free_result( $result );
} // end if
mysqli_close( $conn );
?>

Выход:

 Название позиции: коробка, Описание: коробка квадратной формы красного цвета

14. mysqli_num_rows ():
Вышеупомянутая функция MySQLi используется для возврата количества строк в наборе результатов.

<?php
// Database configuration
$host = "localhost" ;
$dbuser = "root" ;
$dbpass = "" ;
$dbname = "GFG" ;
// Create database connection
$conn = mysqli_connect( $host , $dbuser , $dbpass , $dbname );
$query = "SELECT item_name,description from items_info" ;
if ( $result =mysqli_query( $conn , $query ))
{
//It returns the total number of rows of the result set
$rowcount =mysqli_num_rows( $result );
echo "Total number of rows of the result : " . $rowcount ;
// Free result set
mysqli_free_result( $result );
} // end if
mysqli_close( $conn );
?>

Выход:

 Общее количество строк результата: 8

15. mysqli_affected_rows ():
Вышеупомянутая функция MySQLi используется для возврата общего количества затронутых строк из предыдущего запроса MySQL SELECT, INSERT, UPDATE, DELETE или REPLACE.

<?php
// Database configuration
$host = "localhost" ;
$dbuser = "root" ;
$dbpass = "" ;
$dbname = "GFG" ;
// Create database connection
$conn = mysqli_connect( $host , $dbuser , $dbpass , $dbname );
$query = "SELECT * FROM items_info" ;
// performs the query
mysqli_query( $conn , $query );
echo "Total affected rows : " .mysqli_affected_rows( $conn );
mysqli_close( $conn );
?>

Выход:

 Всего затронутых строк: 8

16. mysqli_get_server_info ():
Вышеупомянутая функция MySQLi используется для возврата версии сервера MySQL.

<?php
// Database configuration
$host = "localhost" ;
$dbuser = "root" ;
$dbpass = "" ;
$dbname = "GFG" ;
// Create database connection
$conn = mysqli_connect( $host , $dbuser , $dbpass , $dbname );
echo "The MySQL server version is : " .mysqli_get_server_info( $conn );
mysqli_close( $conn );
?>

Выход:

 Версия сервера MySQL: 5.6.21

17. mysqli_fetch_fields ():
Вышеупомянутая функция MySQLi возвращает массив объектов, который содержит информацию о столбцах набора результатов.

<?php
// Database configuration
$host = "localhost" ;
$dbuser = "root" ;
$dbpass = "" ;
$dbname = "GFG" ;
// Create database connection
$conn = mysqli_connect( $host , $dbuser , $dbpass , $dbname );
$query = "SELECT item_name,description FROM items_info" ;