0 / 0 / 0
Регистрация: 14.08.2016
Сообщений: 21
1
MySQL

Закрытие соединения MySQLi

30.08.2016, 15:24. Показов 3359. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, товарищи.
Я сделал страницу с простой формой и обработчик к ней. Все, что надо - это записать в БД то, что вводит пользователь. Это я сделал так: создал connect.php(в нем код соединения с БД), в файле обработчика его подключил, записал данные с формы в переменные и далее запрос INSERT для добавления в БД.
но я не закрывал соединение с БД.

Нужно ли в моем случае это делать и как? и если надо, то (насколько я знаю) надо очищать переменные перед закрытием?

Использую MYSQLi
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.08.2016, 15:24
Ответы с готовыми решениями:

Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in
Здравствуйте! Подскажите как решить проблему с выдаваемыми ошибками: Вот сам файл install.php...

Ошибка mysqli::query(): Couldn't fetch mysqli
Здравствуйте) Пытаюсь вывести в БД данные из html формы, максимально сократила код php, убрала...

Ошибка подключения к БД: Warning: mysqli::mysqli() [mysqli.mysqli]: (28000/1045): Access denied for user
Есть магазин на OpenCart, необходимо сделать, чтобы при введении посетителем определенной инфы в...

Warning: mysqli::mysqli() [mysqli.mysqli]: php_network_getaddresses: getaddrinfo failed: Этот хост неизвестен
Денвер запущен, локалхост доступен, через cmd логинюсь в mysql.exe успешно. Вот что выводится на...

6
Эксперт PHP
3858 / 3202 / 1345
Регистрация: 01.08.2012
Сообщений: 10,833
30.08.2016, 15:35 2
Цитата Сообщение от Good_Smile Посмотреть сообщение
Нужно ли в моем случае это делать
Нет.
Цитата Сообщение от Good_Smile Посмотреть сообщение
и как
mysqli_close
Цитата Сообщение от Good_Smile Посмотреть сообщение
(насколько я знаю) надо очищать переменные
Нет.
1
0 / 0 / 0
Регистрация: 14.08.2016
Сообщений: 21
30.08.2016, 15:38  [ТС] 3
Спасибо
0
0 / 0 / 0
Регистрация: 14.08.2016
Сообщений: 21
31.08.2016, 18:10  [ТС] 4
Появился еще 1 вопрос. Форма, описанная выше, добавляет в БД ФИО и телефон.
Теперь я создал форму поиска по этой таблице данных. Она выводит список всех контактов по умолчанию, или (если в нее что-то написали) ищет по базе. Но проблема в том, что она "не видит" введенные буквы (не может по ним найти), однако если искать через телефон, то все работает как надо, т.е. цифры видит.
Я думал проблема в кодировках, но я пробовал работать как с русскими, так и с англ. именами - результат одинаковый.
Так в чем тогда проблема может быть? Или это все таки кодировки?

Добавлено через 36 минут
Поправка: введенные имена скрипт видит, но как-то неправильно, поэтому он не может вывести записи
0
Эксперт PHP
3858 / 3202 / 1345
Регистрация: 01.08.2012
Сообщений: 10,833
31.08.2016, 21:52 5
Good_Smile, код надо смотреть.
0
0 / 0 / 0
Регистрация: 14.08.2016
Сообщений: 21
01.09.2016, 02:23  [ТС] 6
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php //all_clients.php
header("Content-type: text/html; charset=utf8;");
require_once("connect.php");
 
$find = $_POST['search'];
if (!empty($find)) {
 
    if ($find == "Показать всех") {
        $show = "SELECT* FROM `clients` $var ORDER by `SURNAME` ASC";
 
        if ($result = $link->query($show)) {
            while ($row = $result->fetch_assoc()) {
                printf ("%s %s %s %d", $row["Surname"], $row["Name"], $row["Middlename"], $row["Phone"]);
                echo "<br><br>";
            }
            $result->free();
        }
    }
    else {
        $show = "SELECT* FROM `clients` WHERE `Name` LIKE $find OR `Surname` LIKE $find OR `Middlename` LIKE $find OR `Phone` LIKE $find";
 
        if ($result = $link->query($show)) {
            while ($row = $result->fetch_assoc()) {
                printf ("%s %s %s %d", $row["Surname"], $row["Name"], $row["Middlename"], $row["Phone"]);
                echo "<br><br>";
            }
            $result->free();
        }
        
        else echo "Заказчик не найден";
        
    }
    
}
 
else echo "Введите запрос";
 
$link->close();
?>
файл подключения к БД

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php //connect.php
    error_reporting(0);
    define(DB_HOST, 'localhost');
    define(DB_USER, 'root');
    define(DB_PASSWORD, '');
    define(DB_NAME,'shumkar');
    
    $link = new MySQLi(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
    if ($link->connect_errno) {
    printf("Соединение не удалось: %s\n", $link->connect_error);
    exit();
}
    
    $link->query("SET NAMES utf-8");
?>
Форма

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<html lang="ru">
<head>
    <meta charset="utf-8">
    <title>База данных</title>
</head>
<body>
    <form action="add_client.php" name="add_client" method="post">
        Имя<input type="text" name="name">
        Фамилия<input type="text" name="surname">
        Отчество<input type="text" name="middlename">
        Телефон<input type="text" name="phone">
        <input type="submit" value="Записать">
    </form>
    
    <form action="all_clients.php" method="post" name="all_clients">
        <input type="text" name="search" value="Показать всех">
        <input type="submit" value="Поиск заказчика">
    </form>
    
</body>
</html>
0
Эксперт PHP
3858 / 3202 / 1345
Регистрация: 01.08.2012
Сообщений: 10,833
01.09.2016, 05:36 7
Good_Smile,
Цитата Сообщение от Good_Smile Посмотреть сообщение
LIKE $find OR
Строки нужно в кавычки оборачивать. LIKE '$find' OR

Добавлено через 1 минуту
На будущее - подобные ошибки отлавливайте этим.
1
01.09.2016, 05:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.09.2016, 05:36
Помогаю со студенческими работами здесь

Правильное закрытие соединения с БД
Приветствую! Мужики, подскажите, как правильно? Так: if ($result-&gt;num_rows == 0){ ...

Закрытие соединения с mongodb
добрый день, как закрывать и закрывать ли соединение с базой? У метода close, в классе...

Закрытие com соединения для 1С
Здравствуйте использую com соединения и натолкнулся на то что com соединение после отработки...

Закрытие соединения по нажатию кнопки
Подскажите пожалуйста, как можно по нажатию другой кнопки, закрыть это соединение? private void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru