mysql_close — Закрывает соединение с сервером MySQL


Содержание

mysql_close

mysql_close — Закрывает соединение с MySQL

Возвращает TRUE в случае успеха и FALSE — в обратном случае.

mysql_close() закрывает соединение с сервером MySQL с указанной ссылкой-идентификатором. Если параметр link_identifier не указан, будет закрыто последнее установленное соединение.

Использование mysql_close() чаще всего не является обязательным, так как обычное соединение (не постоянное) автоматически закрывается при завершении выполнения скрипта.

Примечание: mysql_close() не закрывает постоянное соединение, созданное функцией mysql_pconnect() .

Пример 1. Закрытие соединения с MySQL

Смотрите также: mysql_connect() и mysql_pconnect() .

Если вы заметили ошибку, неточность, либо хотите опубликовть свой перевод неуказанных в разделе функций, пожалуйста, напишите по этому адресу.

Linux.yaroslavl.ru

Учебник РНР
Назад Вперёд

mysql_close — закрывает MySQL-соединение.

Описание

bool mysql_close ([resource link_identifier])

Возвращает TRUE при успехе, FALSE при неудаче.

mysql_close() закрывает соединение с MySQL-сервером, ассоциированное со специфицированным идентификатором ссылки/link_identifier. Если link_identifier не специфицирован, используется последняя открытая ссылка.

Использовать mysql_close() обычно не нужно, поскольку непостоянные открытые ссылки закрываются автоматически в конце выполнения скрипта. См. также освобождение ресурсов.

Примечание: mysql_close() не закрывает постоянные ссылки, созданные функцией mysql_pconnect() .

Подключение к базе данных в PHP через mysql, pdo и mysqli

Прежде чем подключиться к MySQL серверу необходимо определиться с PHP расширением, которое будет использоваться для работы с базой данных. Под расширением понимается драйвер — посредник между сервером базы и программистом. Он содержит набор функций или объектов, которые упрощают работу программиста. На данный момент выделяют 3 основных расширения.

Все 3 расширения являются стандартным набором для любой хорошей хостинг-площадки. Однако, по умолчанию некоторые могут быть отключены в настройках PHP модулей. Информацию о включенных модулях возвращает функция «phpinfo» с параметром «8».

Доступность модуля можно определить с помощью простой конструкции в коде.

Подключение к MySQL через одноименное расширение

Расширение MySQL появилось первым и долгое время не имело конкурентов. Сейчас считается устаревшим и в серьезных проектах не используется. На это есть ряд причин, основными из которых являются плохая оптимизация и безопасность, отсутствие многопоточности. Несмотря на это, оно ещё долго будет поддерживаться большинством хостингов.

Начиная с PHP версии 5.5 многие функции расширения стали устаревшими, а в PHP 7 и вовсе не поддерживаются.

Рассмотрим пример подключения к базе данных с комментариями.

В качестве запросов используется стандартный SQL. Рассмотрим простые примеры выборки и добавления записей.

В примере производим простую выборку записей из таблицы «books». Результат представлен в качестве ассоциативного массива, поэтому его содержимое можно получить в обычном цикле. Если запрос не возвращает набор данных, то в качестве результата возвращается «false» или «true».

Отличие MySQLi от MySQL

MySQLi пришло на смену MySQL. Буква «i» обозначает улучшенный (Improved). Имеет частичную совместимость со старой версией. Поддерживается всеми версиями PHP. Имеет чуть большую скорость работы и лучшую безопасность. Установлено на 99% хостинговых площадках.

Одной из важных особенностей является наличие объектно-ориентированного интерфейса. Если раньше работы с базой данных осуществлялись при помощи интерфейса функций, то теперь можно использовать оба подхода. Рассмотрим пример подключения к базе данных через MySQLi средствами «ООП».

Так осуществляется простая выборка названий книг из поля «BName» таблицы «books». Вставка и обновление существующих записей так же не отличается сложностью.

В конце запроса осуществляем проверку, удалось ли обновить запись.

Подключение к базе через PDO

PDO — расширение для PHP, которое расшифровывается как PHP Data Objects. Его особенностью является повышенная безопасность и универсальный интерфейс работы с различными базами данных. Другими словами, если с помощью MySQLi можно создавать запросы только для MySQL сервера, то PDO позволяет работать с различными серверами используя один и тот же синтаксис запросов. Это удобно если разработчик заранее не знает под управлением какого сервера будет работать конечный продукт.

У PDO есть свой механизм соединения с базой данных — «DSN» (Data Source Name). Кроме адреса сервера, логина и пароля, он должен принять тип базы данных. Посмотрим пример подключения.

Точно так же осуществляются и другие действия с записями и таблицами. Только меняем SQL запрос и вызываем выполнение методом «exec».

Метод «exec» в отличии от «query» не может получать данные из базы данных. Он возвращает количество записей, которые были затронуты в результате работы SQL запроса.

3 способа подключения к MySQL с помощью PHP с примерами кода

Главное меню » Базы данных » База данных MySQL » 3 способа подключения к MySQL с помощью PHP с примерами кода

В этом руководстве описывается следующие три метода вместе с соответствующей программой примера на PHP, которая объяснит, как подключиться с помощью PHP к базе данных MySQL.

  • Подключение с помощью расширения Mysqli (рекомендуется)
  • Подключение с помощью PDO (рекомендуется)
  • Подключение с помощью традиционных функций устаревших mysql_ (устар)


Для этого необходимо установить пакет PHP-MySQL.

На основе дистрибутива RedHat включая CentOS, использовать yum для установки PHP-MySQL, как показано ниже.

В зависимости от вашей системы, выше будем устанавливать или обновлять следующие зависимости:

После того, как все установлено, страница phpinfo будет отображать MySQL модуль, как показано ниже:

Для всех приведенных ниже примеров, мы будем подключаться к базе данных MySQL, которая уже существует. Если вы новичок в MySQL, это хорошее место, чтобы начать: MySQL – Руководство для начинающих.

Примечание: Все, что описано здесь также будет работать с MariaDB, как это работает на MySQL.

1. Подключение на PHP с использованием расширения Mysqli

MySQLi означает MySQL Improved.

Обратите внимание, что в большинстве дистрибутивов (например: CentOS), PHP-MySQLi уже является частью пакета PHP-MySQL. Таким образом, вам не придется искать и устанавливать пакет PHP-MySQLi. Все, что вам нужно сделать, это установить пакет PHP-MySQL, чтобы получить работающее расширение Mysqli на вашей системе.

Создайте следующий файл mysqli.php в DocumentRoot вApache:

В приведенном выше:

  • MySQLi – Эта функция будет инициировать новое соединение, используя расширение Mysqli. Эта функция будет принимать четыре аргумента:
    1. Имя хоста, где база данных MySQL работает
    2. Имя пользователя для подключения MySQL
    3. Пароль для пользователя mysql
    4. База данных MySQL для подключения.
  • Функция запроса – Используйте ее, чтобы указать ваш запрос MySQL. В этом примере, мы выбираем столбец имени из базы данных employee.
  • Наконец, мы отображаем количество строк, выбранных с помощью переменной num_rows. Мы также закрываем соединение, как показаны выше.

При вызове mysqli.php из вашего браузера, вы увидите следующий вывод, что свидетельствует о том, что PHP был в состоянии подключиться к базе данных MySQL и сделать выборку данных.

Примечание: Если вы пытаетесь подключиться к удаленной базе данных MySQL, то вы можете сделать это, чтобы избежать ошибки запрета подключения к хосту: Как разрешить клиенту MySQL подключиться к удаленному серверу MySQL.

2. Подключение при помощи PHP к MySQL с расширением PDO

PDO означает PHP Data Objects.

PDO_MYSQL реализует интерфейс PDO, предоставляемый РНР для подключения программы к базе данных MySQL.

В большинстве дистрибутивов Linux (например, CentOS и RedHat), PHP-PDO пакет уже входит в пакет PHP-MySQL. Таким образом, вам не придется искать и устанавливать пакет PHP-PDO. Все, что вам нужно сделать, это установить пакет PHP-MySQL, чтобы получить работающее расширение PDO_MYSQL PHP в вашей системе.

Создайте следующий файл MySQL-pdo.php в вашим Apache DocumentRoot:

В приведенном выше:

  • новый PDO – Создаст новый объект PDO, который будет принимать следующие три аргумента:
    1. Строка подключения MySQL: будет в формате “mysql:host=$hostname;dbname=$dbname”. В приведенном выше примере, БД работает на локальном хосте, и мы подключаемся к базе данных andreyex.
    2. Имя пользователя для подключения к MySQL.
    3. Пароль для пользователя mysql.
  • $sql variable – создание запроса SQL, который вы хотите выполнить. В этом примере, мы выбираем столбец name из таблицы employee.
  • query($sql) – здесь мы выполняем SQL запрос, который мы только что создали.
  • foreach – вот здесь мы пробегаем по вышеуказанным командам и сохраняем их в переменной строке $, а затем мы показываем их с помощью команды печати.
  • В MySQL PDO, чтобы закрыть соединение, просто обнулите значение переменной $conn.

При вызове mysqli.php из вашего браузера, вы увидите следующий вывод, что свидетельствует о том, что PHP был в состоянии подключиться к базе данных MySQL и сделать выборку данных.

3. Подключение на PHP с использованием функций mysql_ (устар)

Используйте этот метод, только если вы используете более старую версию PHP и не можете обновить ее до новой версии по какой-то причине.

Рекомендуется использовать метод #2 и #3, показанный выше, вместо этого метода. Я включил этот метод только для справки, а не как рекомендация к использованию.

Это устаревшее расширение PHP 5.5 версии. Но начиная с PHP 7.0 версии, это не будет работать, так как она была удалена.

Начиная с PHP 5.5 версии, когда вы используете эти функции, они будет генерировать ошибку E_DEPRECATED.

Создайте следующий файл MySQL-legacy.php под Apache DocumentRoot:

В приведенном выше:

  • Функция mysql_connect принимает три аргумента: 1) имя хоста, где база данных MySQL работает, 2) Имя пользователя для подключения к MySQL, 3) Пароль для пользователя MySQL. Здесь подключаемся к базе данных MySQL, которая выполняется на локальном сервере, используя имя пользователя root и его пароль.
  • Функция mysql_select_db – Как следует из названия, будет выбирать базу данных, к которой вы хотите подключиться. Это эквивалентно команде «use». В этом примере мы подключаемся к базе данных andreyex.
  • Функция mysql_query – Используйте ее, чтобы указать ваш запрос MySQL. В этом примере, мы выбираем столбец name из базы данных employee.
  • mysql_fetch_row – используйте эту функцию для извлечения строк из запроса SQL, который мы только что создали.
  • Наконец закрыть соединение с помощью команды mysql_close, как показано выше.

При вызове MySQL-legacy.php из вашего браузера, вы увидите следующий вывод, что свидетельствует о том, что PHP был в состоянии подключиться к базе данных MySQL и сделать выборку данных.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

лабы по информатике, егэ

лабораторные работы и задачи по программированию и информатике, егэ по информатике

mySQL урок 2. Соединение с базой данных mysql посредством php

Соединение с базой данных посредством php

Соединение с базой данных происходит в 4 этапа:

  1. Открыть соединение с сервером
  2. Выбрать базу данных
  3. Послать запрос базе дынных
  4. Закрытие БД (не всегда)

Рассмотрим на примерах каждый этап отдельно:


Соединение с сервером посредством php

  1. Создание переменной, ассоциирующейся с соединением с сервером mySql:

Функция языка php mysql_connect — открывает соединение с сервером MySQL. Три параметра функции:

  1. «localhost» — сервер, при работе локально указывается значение «localhost»
  2. «root» — имя пользователя, при работе локально обычно указывается «root»
  3. «» — третий параметр — пароль, локально пароль отсутствует

or die (mysql_error())
Функция php mysql_error() возвращает строку ошибки последней операции с MySQL и может быть использована не только при попытке соединения с сервером, но и в других вариантах работы с базой данных mysql

Выбор базы данных mySQL и соединение с ней

Функция php mysql_connect — выбирает базу данных MySQL. Два параметра функции:

  • «db_name» — имя базы данных
  • $conn — указатель на соединение

    Создание запроса к базе данных

    Функция php mysql_query — посылает запрос активной базе данных сервера, на который ссылается переданный указатель. Два параметра функции:

  • $sql — запрос
  • $conn — указатель на соединение

    Обработка результатов запроса к базе mySQL

    Функция php mysql_fetch_array — возвращает массив с обработанным рядом результата запроса или FALSE , если рядов, отвечающих параметрам запроса, нет

    Решение проблем с кодировкой

    $conn = mysql_connect («localhost», «root», «») or die(«Нет соединения: » . mysql_error()); print («Удачно соединено»); mysql_select_db(«institute», $conn); mysql_query(«SET NAMES cp1251»);

    Использование для обработки цикла foreach

    foreach($result as $row)

    $conn = mysql_connect («localhost», «root», «») or die(«Нет соединения: » . mysql_error()); print («Удачно соединено»); mysql_select_db(«institute», $conn); $sql=»SELECT * FROM `teachers` WHERE `name`=’Иванов'» ; $sql= (string) $sql; $result = mysql_query($sql, $conn) or die («no!».mysql_error()); // сохраняем результат в виде массива $row $row=mysql_fetch_array($result); print_r($row);

    Функция print_r() в php предназначена для вывода удобочитаемой информации о переменной

    Как грамотно закрыть MySQLi?

    Приветствую, есть следующий код, если попытаться выполнить его в контроллере, создав экземпляр этого класса и последовательно вызвать get_one, а затем get_two, то get_two вернет ошибку т.к. mysql-соединение уже закрыто.

    В голову приходит только такое

    Как можно более-менее универсально его закрывать?

    • Вопрос задан более трёх лет назад
    • 3897 просмотров

    Соединение закроется автоматически, когда отработает скрипт. В дальнейшем вам возможно еще раз понадобиться обращатся к бд. А установление соединения — довольно дорогостоящая операция.

    Если вы пишите на php и это не демон (написание которого на пыхе — сомнительное удовольствие), то об освобождении ресурсов сильно не парьтесь. Скрипт отработал — за вас все подчистят.

    Конкретно в этом случае, вынесите закрытие соединения в дестурктор. Или создайте отдельный метод close() и дергайте его.

    По поводу подхода. В данном случае действительно будет лучше писать в процедурном стиле (и в этом нет ничего плохого; ООП — не панацея). Здесь вы класс используете не по назначению. Классы нужны для разделения логики: один отвечает за соединение с бд, другой за формирование запросов, третий за формирование результатов.

    Я не хочу вас обидеть, но вы действительно не понимаете самого смысла ООП. И просто на голой теории это сложно понять. Я сам два года писал, используя ООП. И только потом понял для чего это на самом деле надо.

    Для поднятия навыка попробуйте покопаться в исходниках какого-нибудь фреймворка. Я в свое время перебрал ядро Yii. Он прост для понимания и не перегружен паттернами.

    Касательно конкретно этого случая, я уже сказал, вынесите закрытие соединения в деструктор.

    Создание соединения с БД MySQL разными способами

    Без соединения с базой данных (БД) сегодня не работает практически ни один сайт. поэтому и мы рассмотрим как соединяться с MySQL при помощи php.


    Создание соединения разными способами:

    1) старый дедовский способ подключения к MySQL:

    $conn=mysql_connect($db_hostname, $db_username, $db_password) or die («Нет подключения к серверу»);
    mysql_select_db($db_database,$conn) or die («Нет удалось соединиться с БД»);

    — пояснения к переменным ниже.

    При этом используются функции:

    • mysql_connect() — для подключения к серверу;
    • mysql_select_db() — для подключения к БД;

    При этом постоянно проверяем на наличие ошибки таким способом: or die («Ошибка такая то»); — переводится как или умри с такой-то ошибкой — чтобы сразу найти где ошибка.

    Пример соединения с БД на php с выборкой из таблицы

    config.php

    // переменные для соединения с БД
    $host = ‘localhost’; / хост
    $username = ‘root’; // пароль для подключения к БД
    $password = »; // пароль для подлючения к базе данных — на локальном компьютере он может иметь пустое значение.
    $database_name = ‘my-dolgi’; // имя БД

    // старый способ соедения с БД
    mysql_connect($host, $username, $password) or die(«Не могу соединиться создать соединение»);

    // выбрать БД. Если ошибка — вывести
    mysql_select_db($database_name) or die(mysql_error());

    index.php

    // Выполнить запрос. Если ошибка — выводим
    $result = mysql_query(‘SELECT Name, Money FROM Dolg ORDER BY Money DESC LIMIT 5’) or die(mysql_error());

    echo «Кому я должен по убыванию:

    // Выборка результатов запроса
    while ( $row = mysql_fetch_assoc($result) ) <
    echo $row[‘Name’] . » с долгом » . $row[‘Money’] . » рублей.
    «;
    >

    // освобождение используемой памяти
    mysql_free_result($result);

    // Закрываем соединение
    mysql_close();

    2) Более прогрессивный процедурный стиль — соединение с БД при помощи mysqli:

    1. удобнее;
    2. быстрее до 40 раз;
    3. повышена безопасность;
    4. есть новые возможности и функции;

    Пример соединения с БД на php с выборкой из таблицы

    config.php

    // соедения с БД
    $link = mysqli_connect(‘localhost’, ‘username’, ‘password’, ‘name-database’); // тут вводим прям данные ваши: имя юзера, пароль и имя БД, первое поле обычно localhost

    // вывод ошибки соединения
    if (!$link) <
    echo «Ошибка подключения к БД. Код ошибки: » . mysqli_connect_error();
    exit;
    >

    . Обратите внимание — везде используется mysqli , а не mysql .

    index.php

    // Выполнить запрос. Если ошибка — выводим
    if ($result = mysqli_query($link, ‘SELECT Name, Money FROM Dolg ORDER BY Money DESC LIMIT 5’)) <

    echo «Кому я должен по убыванию:

    // Выборка результатов запроса
    while ( $row = mysqli_fetch_assoc($result) ) <
    echo $row[‘Name’] . » с долгом » . $row[‘Money’] . » рублей.
    «;
    >

    // освобождение используемой памяти
    mysqli_free_result($result);

    Как видим, некоторые моменты поменялись (выделены курсивом).

    3) Объектно-ориентированный метод подключения к бд MySQL — с помощью методов и классов:

    Минусы: сложнее и менее восприимчив к ошибкам.

    Плюсы: краткость и удобство для программистов с опытом.

    $conn = new mysqli($db_hostname, $db_username, $db_password, $db_database);
    if($conn->connect_errno) <
    die($conn->connect_error);
    > else

    тут в принципе все интуитивно понятно:

    • $db_hostname — это хост (в основном localhost),
    • $db_database — имя БД;
    • $db_username и $db_password — имя пользователя и пароль соответственно!

    Пример соединения с БД на php стиль ООП с выборкой из таблицы

    config.php

    // соедения с БД
    $mysqli = new mysqli (‘localhost’, ‘username’, ‘password’, ‘name-database’); // тут вводим прям данные ваши: имя юзера, пароль и имя БД, первое поле обычно localhost


    // вывод ошибки соединения
    if ($mysqli->connect_error) <
    die (‘Ошибка подключения к БД: ( ‘ . $mysqli->connect_errno . ‘) ‘ . mysqli_connect_error ) ;
    >

    . Обратите внимание — везде используется mysqli , а не mysql . и в отличие от предыдущего метода появляются стрелочки «->», которые показывают, что это стиль ООП.

    index.php

    // Выполнить запрос. Если ошибка — выводим
    if ($result = $mysqli->query(‘SELECT Name, Money FROM Dolg ORDER BY Money DESC LIMIT 5’)) <

    echo «Кому я должен по убыванию:

    // Выборка результатов запроса
    while ( $row = $result->fetch_assoc() ) <
    echo $row[‘Name’] . » с долгом » . $row[‘Money’] . » рублей.
    «;
    >

    // освобождение используемой памяти
    $result->close();

    Задание вам такое — найти отличия.

    4) Связь с БД при помощи PDO :

    При соединении с базой данных MySQL используются подготовленные выражения(методом prepare) и в результате большая безопасность и сильно увеличивает быстродействие.

    config файл от предыдущего метода! — такой же

    index.php

    // PDO стиль для связи с MySQL
    if ($stmt = $mysqli->prepare(«SELECT Name, Voney FROM Dolg ORDER BY Money bind_param(«i», $summa);
    $summa = 100000;

    //запускаем выполнение
    $stmt->execute();

    // Объявление переменных для заготовленных значений
    $stmt->bind_result($col1, $col2);

    echo «Кому я должен по убыванию:

    // Выборка результатов запроса
    while ( $stmt->fetch() ) <
    echo $col1 . » с долгом » . $col2 . » рублей.
    «;
    >

    // освобождение используемой памяти
    $stmt->close();

    // Закрываем соединение
    $mysqli->close();

    Как видим, тут намного сложнее и надо изучать PDO — это отдельная тема.

    Более новые статьи:

    • Функция trim в php часто используется, потому что она очень удобна. давайте смотреть как она работает. …

    «>trim функция подробно — 22/03/2020 21:58
    Часто используемые функции php я решил выносить в отдельные статьи. потому что запросы обычно бывают именно целевые, то есть люди ищут именно ответ н …

    «>Parse_url () функция — 22/03/2020 21:06
    Часто возникает вопрос: «Как убрать копейки из цены на php?» на него и будет отвечать в этой статье на примере одной cms. …

    Более старые статьи:

    • Для тех, кто только начинает изучать PHP — заголовки HTTP является каким-то туманом, который почему-то не особо приятный. давайте его рассеивать. Люб …

    «>Заголовки HTTP через PHP
    Часто в PHP нужно вывести все файлы и каталоги в виде списка. это нужно, чтобы нам сразу узнать где у нас, чего и сколько. давайте приступать. …

    «>PHP вывод файлов и каталогов директории
    На PHP часто нужна загрузка файлов на сервер. приятно же, если у вашего сайта есть возможность загружать файлы на сайт: картинки или другие текстовые …

    Является ли закрытие соединения mysql важным?

    Насколько важно закрыть эффективность соединений mysql, или автоматически закрывается после запуска файла php?

    Примечание. Ссылка на сервер будет закрыта, как только выполнение script завершается, если только он не закрыт раньше, явно вызвав mysql_close().

    Если ваш script имеет достаточную сумму обработки для выполнения после получения результата и получил полный набор результатов, вы обязательно должны закрыть соединение. Если вы этого не сделаете, есть вероятность, что сервер MySQL достигнет этого предела соединения, когда веб-сервер находится под большим использованием. Если вы не можете закрыть соединение MySQL до конца script, он будет более чистым, чем это явно не нужно.

    Я не уверен, как fastcgi влияет на вещи. Одна страница утверждает, что сборка PHP, поддерживающая fastcgi, создаст постоянные соединения, даже для mysql_connect. Это противоречит документации в том, что соединение закрывается, когда заканчивается процесс, а не script. Вместо того, чтобы тестировать его, я буду рекомендовать использовать mysql_close(). На самом деле, я рекомендую использовать PDO, если он доступен.

    Как правильно следует закрывать соединение с mysql

    DenVeroid


    Новичок

    Как правильно следует закрывать соединение с mysql

    Немогли бы подсказать когда именно нужно проставлять такие функции как

    я понимаю что их нужно устанавливать после выполнения запроса, так вот, всегда ли нужно
    закрывать соединение msql_close, это не зависит от выполнения большого запроса или маленького,
    ну допустим нам нужно вывести к примеру тысячю записей, мы их выводим и закрываем соединение,
    или нам всего нужно вывести одно значение или проверить допустим на присутсвие того или иного
    значения в базе данных тут цыкла нет, поэтому хотелось знать нужно в этом случии закрывать соединение,
    ведь насколько я помню что с какой-то версии мускуль сам закрывает, но всёже нужноли закрывать самому?
    и ещё по поводу функции mysql_free_result, когда следует её устанавливать ?

    я понимаю что вопросы могут быть бональные, но всёже

    ForJest

    — свежая кровь

    mysql_close происходит самостоятельно по завершению скрипта. Если только не был вызвал mysql_pconnect вместо mysql_connect.
    mysql_free_result можно вызывать перед началом каждого нового запроса на выбоку данных. Я по крайней мере поступаю именно так.
    Опять же по завершению скрипта освобождаются ВСЕ ресурсы, которые открыл скрипт.
    вызов mysql_close может быть полезным на нагруженных системах без акселераторов. Т.е. когда мы уже получили нужные данные и больше нам соединение с БД не нужно.
    Может иметь смысл высвободить его пораньше. Или на время «долгоиграющих вычислений» и потом его восстановить, при необходимости.
    —————
    При этом следует помнить что операция установки соединения сама по себе доровольно «дорогостоящая».

    В большинстве случаев закрытие соединения не требуется.

    DenVeroid

    Новичок

    Vadim S.

    Новичок

    vovik

    Новичок

    Делать mysql_free_result() перед каким-то запросом — это чистой воды бред. Нужно понять что делает функция и пользоваться ей когда это необходимо.

    Когда ты делаешь выборку из базы с помощью mysql_query(), все что база тебе передаст будет храниться в памяти. mysql_free_result() освобождает эту память. Соответственно, когда ты выберешь все из результата запроса с помощью mysql_fetch_*(), память можно освобождать.

    Но если выборки маленькие, то на это можно забивать, так как после выполнения скрипта вся память, им занимаемая, освободится.

    Лично я делаю _free_result() всегда. Привычка уже выработалась.

    Что касается коннекта, то mysql_connect() устанавливает сетевое соединение с базой, а mysql_close() закрывает данное соединение. Закрытие также автоматически будет сделано после завершения работы скрипта. Соответственно и вызывать эти функции нужно тогда, когда нужно открывать или закрывать соединение.

    лабы по информатике, егэ

    лабораторные работы и задачи по программированию и информатике, егэ по информатике

    mySQL урок 2. Соединение с базой данных mysql посредством php

    Соединение с базой данных посредством php

    Соединение с базой данных происходит в 4 этапа:

    1. Открыть соединение с сервером
    2. Выбрать базу данных
    3. Послать запрос базе дынных
    4. Закрытие БД (не всегда)

    Рассмотрим на примерах каждый этап отдельно:

    Соединение с сервером посредством php

    1. Создание переменной, ассоциирующейся с соединением с сервером mySql:

    Функция языка php mysql_connect — открывает соединение с сервером MySQL. Три параметра функции:

    1. «localhost» — сервер, при работе локально указывается значение «localhost»
    2. «root» — имя пользователя, при работе локально обычно указывается «root»
    3. «» — третий параметр — пароль, локально пароль отсутствует

    or die (mysql_error())
    Функция php mysql_error() возвращает строку ошибки последней операции с MySQL и может быть использована не только при попытке соединения с сервером, но и в других вариантах работы с базой данных mysql

    Выбор базы данных mySQL и соединение с ней

    Функция php mysql_connect — выбирает базу данных MySQL. Два параметра функции:

  • «db_name» — имя базы данных
  • $conn — указатель на соединение

    Создание запроса к базе данных

    Функция php mysql_query — посылает запрос активной базе данных сервера, на который ссылается переданный указатель. Два параметра функции:

  • $sql — запрос
  • $conn — указатель на соединение

    Обработка результатов запроса к базе mySQL

    Функция php mysql_fetch_array — возвращает массив с обработанным рядом результата запроса или FALSE , если рядов, отвечающих параметрам запроса, нет

    Решение проблем с кодировкой

    $conn = mysql_connect («localhost», «root», «») or die(«Нет соединения: » . mysql_error()); print («Удачно соединено»); mysql_select_db(«institute», $conn); mysql_query(«SET NAMES cp1251»);

    Использование для обработки цикла foreach

    foreach($result as $row)

    $conn = mysql_connect («localhost», «root», «») or die(«Нет соединения: » . mysql_error()); print («Удачно соединено»); mysql_select_db(«institute», $conn); $sql=»SELECT * FROM `teachers` WHERE `name`=’Иванов'» ; $sql= (string) $sql; $result = mysql_query($sql, $conn) or die («no!».mysql_error()); // сохраняем результат в виде массива $row $row=mysql_fetch_array($result); print_r($row);

    Функция print_r() в php предназначена для вывода удобочитаемой информации о переменной

    Илон Маск рекомендует:  Венгерская нотация (hungarian notation)
    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL