Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
2 / 2 / 0
Регистрация: 25.11.2017
Сообщений: 21

Объясните что такое fetch_assoc() и как с ним работать

07.03.2020, 21:16. Показов 4736. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При работе скрипта выходит ошибка:
Неустранимая ошибка: вызов функции-члена fetch_assoc() на bool in /srv / disk19 / 3334503 / www / smerch.dx.am/core/func. php: 18 Трассировка стека: #0 /srv/disk19/3334503/www/smerch.dx.am/core/base.php(12): include_once() #1 /srv/disk19/3334503/www/smerch.dx.am/index.php(2): include_once('/srv/disk19/333...') #2 {главная} вброшено /srv/disk19/3334503/www/smerch.dx.am/core/func.php на линии 18

вот сам код:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
/* SYSTEM FILE */
$act = isset($_GET['act']) ? htmlspecialchars($_GET['act']) : '';
session_start(); 
ob_start();
 
function fl($m){ 
    if(!is_numeric($m)){
        $m = htmlspecialchars($m);
    } else {
        $m = intval($m);
        $m = abs($m);
    }
    return $m;
} /* FILTER */
 
if(isset($_COOKIE['login'])  && isset($_COOKIE['password'])) {
    $u = $base -> query("SELECT * FROM `users` WHERE `login` = '".fl($_COOKIE['login'])."' && `password` = '".fl($_COOKIE['password'])."' LIMIT 1") -> fetch_assoc();
не понимаю как это работает, объясните добрые люди!

Добавлено через 16 минут
а без него не работают функции
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.03.2020, 21:16
Ответы с готовыми решениями:

Что такое Snippet и как с ним работать?
Скажите пожалуйста , что это и зачем . Если можно ссылку , не могу найти подробного объяснения =(

Что такое флаг и как с ним работать?
нужно эту прогу переделать так чтобы обьеденить if(i%2==0) и if(i%2==1), с помощью флагов. Подскажите что нужно сделать! #include...

Что такое Bitmap и как с ним работать
Мне нужно инвертировать изображение, оно помещается в Timage, и в любом формате, помогите, очень нужно.

12
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,813
07.03.2020, 21:50
Лучший ответ Сообщение было отмечено Nikila как решение

Решение

Nikila, 1) это у вас там автоматический гугл переводчик такие ошибки выдает?) Все ошибки как правило на английском языке)
Он ругается, что метод query вернул false вместо объекта mysqli_result, соответственно он не может вызвать метод fetch_assos();

Добавлено через 6 минут
Nikila, Не нужно записывать в базу данных htmlspecialchars. Это вы будете использовать при выводе данных. А в базе данных храните как есть. Единственное, что вам нужно экранировать, чтоб не поломался сам SQL запрос, для этого есть специальная функция
mysqli::real_escape_string
Либо проще использовать подготовленные запросы
mysqli:: prepare
1
2 / 2 / 0
Регистрация: 25.11.2017
Сообщений: 21
07.03.2020, 21:52  [ТС]
Как мне его поставить, этот mysqli:: prepare?
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,813
07.03.2020, 21:53
Скорее всего у вас некорректно составлен SQL запрос. К примеру что это?
WHERE `login` = '".fl($_COOKIE['login'])."' && `password` = '".fl($_COOKIE['password'])."
Какой &&? надо писать AND
0
2 / 2 / 0
Регистрация: 25.11.2017
Сообщений: 21
07.03.2020, 21:54  [ТС]
на локальном работало, как только перенес на хостинг, везде где стоит fetch_assoc(); ошибка...
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,813
07.03.2020, 21:55
Цитата Сообщение от Nikila Посмотреть сообщение
Как мне его поставить, этот mysqli:: prepare?
Я вам кинул ссылку, там все описано, и есть даже примеры. Вы написали сразу, видимо, что даже не посмотрели. Попытайтесь для начала самостоятельно разобраться. Потом уже пишите, если уж совсем туго.
0
2 / 2 / 0
Регистрация: 25.11.2017
Сообщений: 21
07.03.2020, 21:56  [ТС]
Спасибо, сейчас побегу знакомиться!
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,813
07.03.2020, 22:00
Лучший ответ Сообщение было отмечено Nikila как решение

Решение

Цитата Сообщение от Nikila Посмотреть сообщение
на локальном работало, как только перенес на хостинг, везде где стоит fetch_assoc(); ошибка...
Значит смотрите, я вам написал, что query возвращает false вместо объекта. В документации написано, что
mysqli_query() Возвращает FALSE в случае неудачи.
Нужно разобраться, что у вас там за ошибка.

Добавлено через 2 минуты
Для этого смотрите как получить текст ошибки https://www.php.net/manual/ru/mysqli.error.php

Добавлено через 44 секунды
Документация, наш дом родной, нужно уметь ей пользоваться.)
0
2 / 2 / 0
Регистрация: 25.11.2017
Сообщений: 21
16.03.2020, 18:07  [ТС]
sad67man, обращюсь еще раз, я прочитал достаточно много раз документацию... Но моя глупая голова не соображает в чем не правильность...
0
 Аватар для D_Vik
368 / 234 / 68
Регистрация: 19.07.2016
Сообщений: 833
16.03.2020, 19:46
А чего у вас за строка sql такая интересная ? По моему с ней что то не так.
0
2 / 2 / 0
Регистрация: 25.11.2017
Сообщений: 21
17.03.2020, 08:19  [ТС]
D_Vik, там вроде бы все отлично, синтаксическая ошибка была в место AND стоит &&, уже заменил
0
 Аватар для D_Vik
368 / 234 / 68
Регистрация: 19.07.2016
Сообщений: 833
17.03.2020, 10:19
Ваша строка запроса будет выглядеть примерно так.

PHP
1
2
3
4
5
$result = $db -> query (
  "SELECT `id`, `login`, `email`, `password` FROM `users` WHERE `login` = '$login' AND `password` = '$password'"
) -> fetch_assoc();
 
print_r($result);
Добавлено через 2 минуты
А это маленький классик для работы с базой, в нагрузку.

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
class dbClass {
 
  const DATABASE = 'test';
  const HOST = 'localhost';
  const USER = 'root';
  const PASSWORD = '';
 
  private $mysqli;
  private static $instances = [];
 
  public function __construct()
  {
    $this -> mysqli = new mysqli(
      self::HOST, self::USER,
      self::PASSWORD,
      self::DATABASE
    );
  }
 
  private function __clone(){}
  private function __wakeup(){}
 
  public static function instances() : dbClass
  {
    $self = static :: class;
 
    if (!isset(static :: $instances[$self])) {
      static :: $instances[$self] = new static;
    } return static :: $instances[$self];
  }
 
  public function query($sql)
  {
    return $this -> mysqli -> query($sql);
  }
 
}
 
$db = dbClass::instances();
Добавлено через 6 минут
Да и потом, наверное не стоит хранить пароль и логин в куках браузера.
0
2 / 2 / 0
Регистрация: 25.11.2017
Сообщений: 21
17.03.2020, 10:37  [ТС]
D_Vik, Хм... Сейчас попробую, проверю и отпишусь, и да, почему не стоит хранить его в куки?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.03.2020, 10:37
Помогаю со студенческими работами здесь

Что такое SDK и как с ним работать?
1) что такое вообще SDK для IP камер: что-то вроде получение доступа (полномочий) к настройкам или какое-то ПО для получения этого доступа...

что такое Blob memo? и как с ним работать?
Здравствуйте! подскажите пожалуйста что такое Blob memo? в delphi вводим в memo текст, а в бд показывает Blob memo, как данные сохраняются,...

Объясните, как такое может работать?
Всем привет, я новичок в C++ и вот недавно забыл в начале добавить заголовок &lt;string&gt;, но программа оставалась рабочей. Вот пример: ...

Что делает PlaySound, и как с ним вообще работать
Господа подскажите что делает PlaySound , и как с ним вообще работать(там по идеи 3 параметра а вот какие) ?

Что такое лексема? Объясните как программисты
Что такое лексема


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
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 - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru