Проблема с подключением PDO

214
03 апреля 2018, 01:09

Добрый день! Перехожу на PDO, столкнулся со странной ситуацией, есть скрипт следующего вида:

include 'db.php';
function addGroup($group_name){
$stmt=$pdo->prepare('INSERT INTO group_back SET name_group=? ');
$stmt=$pdo->execute(array($group_name));
}

При обращении к функции addGroup сыпится ошибка:

Undefined variable:pdo

Вот содержимое db.php

$host = '*****';
$db   = '*****';
$user = '*****';
$pass = '*****';
$charset = 'utf8';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$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);

сам скрипт db.php отрабатывает( проверил банальным запросом к таблице и выводом результата запроса ). Я так понимаю по какой-то причине php не получает переменную при инициализаци скрипта db.php...

Answer 1

Нужно передать переменную $pdo как аргумент функции или сделать её глобальной с помощью global.

function addGroup($pdo, $group_name){
    $stmt=$pdo->prepare('INSERT INTO group_back SET name_group=? ');
    $stmt=$pdo->execute(array($group_name));
}

Вызывать функцию так:

addGroup($pdo, $group_name);

Область видимости переменной

READ ALSO
Несколько массивов в одну переменную в php

Несколько массивов в одну переменную в php

Очень глупый вопрос, но все жеВозможно ли объединить несколько массивов под одной переменной? Например: $a = [1, 2, 3]; $b = [4, 5, 6]; Чтоб в итоге вышло:...

222
Копирование страницы

Копирование страницы

Имеется простая страница с таблицей

207
Передача массива с laravel во vue

Передача массива с laravel во vue

Здравствуйте, подскажите как я могу передать массив с blade(laravel), и вывести его во vueВот как я пробывал: (Как я понял v-for тут должен получиться...

266