Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 22.06.2018
Сообщений: 27
MySQL

Запрос рабочий но mysqli_query выдает ошибку Warning: mysqli_query(): Couldn't fetch mysqli in [Мой_Файл]

22.06.2018, 16:35. Показов 6451. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Фой код генерирует запрос INSERT INTO `users`(`login`, `email`, `password`, `lname`, `fname`, `mname`, `address`) VALUES ('user', 'proverca@email.net', 'd8578edf8458ce06fbc5bb76a58c5ca4', '', '', '', '');
который корректно выполняется в PhpMyAdmin, но функция if(mysqli_query($db, $req)) не выполняется, хотя все предыдущие вызовы выполняются.
Xamp пишет что Warning: mysqli_query(): Couldn't fetch mysqli in C:\xampp\htdocs\fbshop\revolution.php on line 123
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
if(!empty($_POST))
    {
        /*
        if (!empty($_POST["address"]))
        {
            echo htmlspecialchars($_POST["address"]));
        }
        */
        $err = [];
        $db = mysqli_connect("127.0.0.1","root","");
        if (!$db)
        {
            echo "Ошибка подключения к серверу MySQL.";
        }
        mysqli_query($db,'SET NAMES utf8');
        if (!mysqli_select_db($db,"shop_fb"))
        {
            echo "Ошибка подключения к базе";
            echo mysql_error($db);
        }
        
        
        if (preg_match("/^[\w_]{3,30}$/", $_POST["login"])) 
        {
            $query = mysqli_query($db, "SELECT user_id FROM users WHERE login='".$_POST["login"]."'");
            if(mysqli_num_rows($query) > 0)
            {
                $err[] = "Пользователь с таким уже зарегистрирован!";
                echo "<p class=red>".end($err)."</p>";
            }
        }
        else 
        {
            $err[] = "Логин может состоять только из букв английского алфавита и цифр и быть от 3 до 30 символов!";
            echo "<p class=red>".end($err)."</p>";
        }
        if (preg_match("/^(\w+\.)*[\w-]+@[\w_-]+(\.\w+)*\.[\A_Za-z]{2,6}$/", $_POST["email"]))
        {
            $query = mysqli_query($db, "SELECT user_id FROM users WHERE email='".$_POST["email"]."'");
            if(mysqli_num_rows($query) > 0)
            {
                $err[] = "Такой адрес электронной почты уже зарегистрирован!";
                echo "<p class=red>".end($err)."</p>";
            }
        }
        else
        {
            $err[] = "Адрес электронно почты введен некоректно!";
            echo "<p class=red>".end($err)."</p>";
        }
        mysqli_close($db);
        /*
        $lenpswd = strlen($_POST["password"]);
        if ($lenpswd > 6 && $lenpswd < 30)
        {
            if ($_POST["password2"] != $_POST["password"])
            {
                $err[] = "Пароли не совпадают!";
                echo "<p class=red>".end($err)."</p>";
            }
        }
        {
            $err[] = "Пароль может быть от 6 до 30 символов!";
            echo "<p class=red>".end($err)."</p>";
        }
        */
        if ($_POST["password2"] != $_POST["password"])
            {
                $err[] = "Пароли не совпадают!";
                echo "<p class=red>".end($err)."</p>";
            }
        if(count($err) == 0)
        {
            $address = $_POST["address"];
            $address = trim($address);
            $address = stripslashes($address);
            $address = strip_tags($address);
            $address = htmlspecialchars($address);
            // Убераем лишние пробелы и делаем двойное хеширование
            $pass = md5($_POST['password']);
            $req="INSERT INTO `users`(`login`, `email`, `password`, `lname`, `fname`, `mname`, `address`) ".
                "VALUES (".
                "'".$_POST["login"]."', ".
                "'".$_POST["email"]."', ".
                "'".$pass."', ".
                "'".$_POST["lname"]."', ".
                "'".$_POST["fname"]."', ".
                "'".$_POST["mname"]."', ".
                "'".$address."');";
            echo $req;
.*127*/         if(mysqli_query($db, $req))
            {
                echo "<p class=green> Вы успешно зарегестрированы <p>";
                echo "<a href=authorezation.php> Войти </a>";
            }
            else
            {
                echo "Ошибка сервера!";
            }
        }
        //mysqli_close($db);    
    }
    ?>
    </div>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.06.2018, 16:35
Ответы с готовыми решениями:

Не знаю в чем проблема к бд обращение идет, выдает такую ошибку Warning: mysqli_query() expects parameter 1 to be mysqli
&lt;!doctype html&gt; &lt;html lang=&quot;en&quot;&gt; &lt;head&gt; &lt;meta charset=&quot;UTF-8&quot;&gt; &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width,...

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in Z:\home\1x.loc\www\login.php on line 33 Warning
&lt;!doctype html&gt; &lt;html lang=&quot;en&quot;&gt; &lt;head&gt; &lt;meta charset=&quot;UTF-8&quot;&gt; &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width,...

Warning: mysqli_query() expects parameter 1 to be mysqli
Warning: mysqli_query() expects parameter 1 to be mysqli, string given in W:\domains\localhost\shop\www\index.php on line 98 Warning:...

8
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
22.06.2018, 18:23
karaken, Тебе самому приятно такое писать?
PHP
1
2
3
4
5
6
7
8
"VALUES (".
                "'".$_POST["login"]."', ".
                "'".$_POST["email"]."', ".
                "'".$pass."', ".
                "'".$_POST["lname"]."', ".
                "'".$_POST["fname"]."', ".
                "'".$_POST["mname"]."', ".
                "'".$address."');";
По человечески, что мешает делать?
PHP
1
"VALUES ('{$_POST["login"]}', '{$_POST["email"]}', '{$pass}', '{$_POST["lname"]}', '{$_POST["fname"]}', '{$_POST["mname"]}', '{$address}')"
0
 Аватар для monahoff
40 / 40 / 23
Регистрация: 26.01.2012
Сообщений: 317
23.06.2018, 00:31
Цитата Сообщение от edward_freedom Посмотреть сообщение
"VALUES ('{$_POST["login"]}', '{$_POST["email"]}', '{$pass}', '{$_POST["lname"]}', '{$_POST["fname"]}', '{$_POST["mname"]}', '{$address}')"
чувак, это по твоему по человечески???))))) пихать в базу сырые данные из POST))))

Добавлено через 2 минуты
on line 123
А чего ты самую главную строку не показал??? Там скорее всего косяк...
1
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
23.06.2018, 12:14
monahoff, Мне что за тс проверки дописывать? В оригинале нет фильтрации, а мне что оно больше его надо?
Цитата Сообщение от monahoff Посмотреть сообщение
)))))
Зачем столько скобок закрывающих? Тут не детский сад
0
0 / 0 / 0
Регистрация: 22.06.2018
Сообщений: 27
07.10.2018, 15:43  [ТС]
На счет сырых данных учту. А вообще проблема была насколько мне помнется в том что я где то перед самым не выполнявшимся запросом закрыл коннект к БД копипастом. Не судите старого это практически мой первый скрипт на PHP

Добавлено через 11 минут
Да в 51 строке mysqli_close($db); Я это нашел на следующий день свежим взглядом. Просто я не знал когда такая ошибка бывает и зачем то создал тему.

Добавлено через 13 минут
До этого он мне эту ошибку выдавал только при косячных SQL запросах, вот я и запаниковал, от того что SQL запрос рабочий а ошибка как будто он нерабочий.
0
133 / 118 / 34
Регистрация: 04.04.2018
Сообщений: 593
07.10.2018, 22:08
karaken,
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    $login = mysqli_real_escape_string($db, $_POST['login']);
    $email = mysqli_real_escape_string($db, $_POST['email']);
    $lname = mysqli_real_escape_string($db, $_POST['lname']);
    $mname = mysqli_real_escape_string($db, $_POST['mname']);
    $fname = mysqli_real_escape_string($db, $_POST['fname']);
    $req= "INSERT INTO
                     `users`
                     (`login`, 
                      `email`,
                      `password`, 
                      `lname`,
                      `fname`,
                      `mname`, 
                      `address`)  
             VALUES (
                 '".$login."', 
                 '".$email."',  
                '".$pass."',
                '".$lname."', 
                '".$fname."', 
                '".$mname."',
                '".$address."'"
                );
В самом запросе проблема, а именно в лишних кавычках и точках.
0
0 / 0 / 0
Регистрация: 22.06.2018
Сообщений: 27
28.10.2018, 09:16  [ТС]
Да нет проблемы в кавычках и точках, я же говорю все заработало. Кавычки и точки я ставил для конъюнкции строк и все работает. согласен выглядит дико я не знаю зачем я все в столбик написал, но все работает, проблема в другом и я её решил.
0
28.10.2018, 11:49

Не по теме:

Цитата Сообщение от karaken Посмотреть сообщение
конъюнкции строк
конкатенации

0
0 / 0 / 0
Регистрация: 22.06.2018
Сообщений: 27
28.10.2018, 12:29  [ТС]
Да конкатенации, все время её с коньнкцией путаю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.10.2018, 12:29
Помогаю со студенческими работами здесь

Warning: mysqli_query() expects parameter 1 to be mysqli
Здравствуйте, уважаемые форемчане. Только начал попытку изучения PHP и MySQL. Решил начать со страницы регистрации. Погуглив немного нашел...

WARNING: MYSQLI_QUERY() EXPECTS PARAMETER 1 TO BE MYSQLI, NULL GIVEN IN
Помогите пожалуйста! Вот так не работает. Убираю функцию, напрямую все работает function database_connection(){ /* Подключение к...

Warning: mysqli_query() expects parameter 1 to be mysqli, null given
Здравствуйте. Как исправить эти ошибки &quot; Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in...

Warning: mysqli_query() expects parameter 1 to be mysqli, string given
Помогите с ошибками Warning: mysqli_query() expects parameter 1 to be mysqli, string given in /home/u529477152/public_html/save_user.php...

Warning: mysqli_query() expects parameter 1 to be mysqli, string given
PHP Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in save_user.php on line 118 PHP Warning: ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru