
Vladimir
24.04.2017
16:59:53
Сорри)

Виталий
24.04.2017
17:00:11
Вернее присваиваешь $user но в локальной области видимости функции
Тут на самом деле все очень плохо
Для начала советую подучить php в целом

Google

Veronika
24.04.2017
17:00:40
function checkUser($user_id){
global $mysqli;
// поиск пользователя по user_id
$query = $mysqli->query("select * from `users` where `user_id` = {$user_id}");
if($query->num_rows){
// если пользователь найден
return true;
}
else{
// если пользователь не найден
return false;
}
}
function getUser($user_id){
global $mysqli;
$query = $mysqli->query("select * from `users` where `user_id` = {$user_id}");
return $user = $query->fetch_object();
}

F01134H
24.04.2017
17:01:05

Veronika
24.04.2017
17:01:17
Это просто php код

F01134H
24.04.2017
17:01:29
Так, в чем проблема?

Veronika
24.04.2017
17:01:46
В Laravel $user = App\User::findOrFail($id);

F01134H
24.04.2017
17:02:10
но это ж просто php код) Я имею ввиду, вы на фреймворке делаете что-то или без

Veronika
24.04.2017
17:02:26
Проверяю есть ли пользователь в базе. Потом нужно получить либо пользователя с данными либо false
Без фреймворка
Головый php + mysqli
Даже PDO не могу использовать

F01134H
24.04.2017
17:03:00
а laravel тут причем? :D

Veronika
24.04.2017
17:03:00
Задание на mysqli

F01134H
24.04.2017
17:03:13

Google

Veronika
24.04.2017
17:03:20
Если знаешь Laravel значит знаешь PHP

F01134H
24.04.2017
17:03:27
о_О

Veronika
24.04.2017
17:03:40
Тут ребята более адекватные нежели в phpgeeks
Там спросишь что нить и начинается

Evgeny_30
24.04.2017
17:03:59

F01134H
24.04.2017
17:04:12

Evgeny_30
24.04.2017
17:04:18

Veronika
24.04.2017
17:04:40
Так что на счет глобального объявления внутри функции $mysqli

F01134H
24.04.2017
17:04:43
но их можно просто забанить, если будут неадекватить ??

pzrk
24.04.2017
17:04:43

Veronika
24.04.2017
17:04:47
Насколько это плохо?
И почему?
Безопасность, подводные камни? Что?

F01134H
24.04.2017
17:05:12
нарушение принципа инкапсуляции

Veronika
24.04.2017
17:05:30
Но как тогда получить данные внутри функции?

F01134H
24.04.2017
17:05:38

Veronika
24.04.2017
17:05:47
Ну да. Нужно же что то вернуть

F01134H
24.04.2017
17:06:00
Как это должно работать:
вы подаете данные в функцию в виде аргументов

Google

F01134H
24.04.2017
17:06:17
функция обрабатывает их и возвращает результат
никакие global не нужны

Veronika
24.04.2017
17:06:38
А как сделать запрос к базе?
Если $mysqli является глобавльно?

F01134H
24.04.2017
17:07:13
$mysqli должен создаваться в области определения функций
а не внутри функции
тогда он будет доступен для использования внутри всех функций

Veronika
24.04.2017
17:07:32
Или внутри функции создать новую $mysqli = new mysqli()

pzrk
24.04.2017
17:07:37

F01134H
24.04.2017
17:07:46
я так понимаю у вас не ООП, а процедурный код

Evgeny_30
24.04.2017
17:08:06

Veronika
24.04.2017
17:08:15
Косим под ООП :)

Олег
24.04.2017
17:08:23
Если я правильно понял вопрос:
->where(function($query) use ($name)
{
/** @var Builder $query */
$query->where(Producer::FIELD_NAME, $name);
})

F01134H
24.04.2017
17:08:52
Косим под ООП :)
тогда в файлике делаете
$mysqli = new mysqli();
function getUser($user_id) {
return $mysqli->query(...);
}

Veronika
24.04.2017
17:10:01
Мне в этом файле нужно получить $mysqli?

F01134H
24.04.2017
17:11:06
вы можете как угодно сделать

Veronika
24.04.2017
17:11:19
Хотелось бы правильно

Google

F01134H
24.04.2017
17:11:25
по итогу у вас в одном файле все соберется через require_once

Veronika
24.04.2017
17:11:54
У меня главный файл в котором все остальные я подключаю

F01134H
24.04.2017
17:12:02
но лучше всего создавайте mysqli объект в файле, где require_once functions.php

Veronika
24.04.2017
17:12:16
В самом начале главного файла я создаю его

F01134H
24.04.2017
17:12:38
Вам явно нужен ООП

Veronika
24.04.2017
17:13:00
// соединение с базой данных
$mysqli = new mysqli('localhost', 'user', 'password', 'database');
// кодировка
$mysqli->set_charset("utf8");

F01134H
24.04.2017
17:13:09
угу

Veronika
24.04.2017
17:13:22
Ниже подключаю файл с функциями

F01134H
24.04.2017
17:13:40
require_once лучше в самом начале файла прописать

Admin
ERROR: S client not available

F01134H
24.04.2017
17:13:45
сразу после <?php

Veronika
24.04.2017
17:14:03
Ок. Сейчас так и сделаю

F01134H
24.04.2017
17:14:55
а в чем проблема то была?

Veronika
24.04.2017
17:15:17
Если не объявить $mysqli как global
Нет доступа к базе
Ошибка что обращаюсь member call

F01134H
24.04.2017
17:15:47
оох
передавайте тогда объект mysqli в функцию
как аргумент

Google

F01134H
24.04.2017
17:16:40
за такое использование global сажают на кол)

Veronika
24.04.2017
17:16:43
Ну вот :)
Да?!

F01134H
24.04.2017
17:16:52
ну
немношк)

Veronika
24.04.2017
17:17:03
Млин ну давайте тогда ткните как правильно?
Но с mysqli

F01134H
24.04.2017
17:17:14
Вам бы там класс создать, вот это было бы правильно

Veronika
24.04.2017
17:17:17
Млин задача такая

F01134H
24.04.2017
17:17:23
и через конструктор передать объект
и не было бы проблем

Veronika
24.04.2017
17:17:36
$mysqli = new mysqli();

∀RTUR
24.04.2017
17:17:42

F01134H
24.04.2017
17:17:59
прям так и написано - используйте global?

Veronika
24.04.2017
17:18:22
На голом php и mysqli сделать маленький планировщик задач
Нет конечно
Это я по логике добавила

F01134H
24.04.2017
17:18:35
т.е. можно классы таки юзать?)

Veronika
24.04.2017
17:18:36
:)
Да

F01134H
24.04.2017
17:19:06
А вы в ООП конечно же не шарите?)

Veronika
24.04.2017
17:19:39
$DBH = new \PDO();