nastya97core
@nastya97core
Начинающий программист

Как получить результат за пределами функции?

Здравствуйте. Делаю запрос к БД:
$opt = [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ];
$pdo = new PDO($dsn, $user, $pass, $opt);

function getUser($pdo, $userid)
{
	$stmt = $pdo->prepare("SELECT * FROM tgb_user WHERE name = ?");
	$stmt->execute(array($userid));
	$dataPdo = $stmt->fetchAll();
}
$userid = $tgObj->message->from->id;
function getUser($pdo, $userid)
vardump($dataPdo); // null


У меня в нескольких местах идёт запрос к бд по пользователю, поэтому я решила вывести это всё в функцию, но у меня не выходит с получением результатов запроса к бд. $dataPdo пустой. Я даже пыталась в конце функции прописать global $dataPdo, но это ничего не дало.
  • Вопрос задан
  • 80 просмотров
Решения вопроса 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. return в функции забыли
2. При вызове - function не нужно писать.
Ответ написан
Комментировать
myks92
@myks92 Куратор тега PHP
Нашёл решение — пометь вопрос ответом!
function getUser($pdo, $userid)
{
  $stmt = $pdo->prepare("SELECT * FROM tgb_user WHERE name = ?");
  $stmt->execute(array($userid));
  return $stmt->fetchAll();
}

$opt = [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ];
$pdo = new PDO($dsn, $user, $pass, $opt);
$userid = $tgObj->message->from->id;
$dataPdo = getUser($pdo, $userid);

var_dump($dataPdo);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы