Процедурные функции MySQLi
MySQLi (MySQL Improved) предоставляет процедурный и объектно-ориентированный интерфейс для данных и управления ими. Функции MySQL расширения i позволяют пользователю получить доступ к его серверам баз данных. Усовершенствованное расширение MySQL специально разработано для работы с MySQL версии 4.1.13 и новыми версиями.
Преимущества использования подготовленных выписок:
- Подготовленные операторы очень эффективны, особенно для предотвращения атак с использованием SQL-инъекций.
- Подготовленные отчеты используются повторно. Это также сокращает время синтаксического анализа и накладные расходы, поскольку подготовка запроса выполняется только один раз.
- База данных анализирует, компилирует, оптимизирует оператор запроса и сохраняет результат.
- Связывание параметров с запросом сводит к минимуму общую пропускную способность, поскольку параметры отправляются по мере необходимости, вместо отправки всего запроса.
- Связывание параметров с заполнителями безопаснее и проще, поскольку правильное форматирование выполняется автоматически.
- Отправляя значения заполнителей на сервер MySQL, он следует протоколу клиент-сервер.
- Он выполняет конкретную инструкцию запроса несколько раз с различным набором переменных, что эффективно снижает затраты.
- Это также экономит на копировании и преобразовании данных.
- Подготовленные операторы менее подвержены ошибкам, поскольку сначала оператор анализируется, а затем проанализированные значения используются сервером.
Мы не можем охватить все в рамках этой темы, но давайте рассмотрим некоторые важные процедурные функции.
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" ; if ( $result =mysqli_query( $conn , $query
РЕКОМЕНДУЕМЫЕ СТАТЬИ |