@laravel_pro

Страница 443 из 2014
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(); }

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
В Laravel $user = App\User::findOrFail($id);
вот это как связано

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
Так что на счет глобального объявления внутри функции $mysqli
Использовать global переменные - плохая практика

нарушение принципа инкапсуляции

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

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
я так понимаю у вас не ООП, а процедурный код

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();

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();

Страница 443 из 2014