Не могу подключиться к mysql из функции, кто может помочь?

118
18 сентября 2019, 08:10

Сайт выдает ошибку:

Notice: Undefined variable: bd Warning: mysqli_query() expects parameter 1 to be mysqli, null given

Подключение к бд:

$bd = mysqli_connect($host, $username, $password, $db_name) OR DIE ('Не удалось установить соединение');

Функция:

function upload_file($file) {
    if ($file['name'] == '') {
        echo 'Файл не выбран!';
        return;
    }
    if (copy($file['tmp_name'], 'img/'.$file['name'])) {
        //header('Location: /index.php');
        //exit;
        echo ' :: Файл успешно загружен!';  
    } else {
        echo ' :: При загрузке файла произошла ошибка';
    }   
    $source = 'img/'.$file['name'];
    $query_url = "INSERT INTO images (url) VALUES ('img/".$source."')";
    $sql_s = mysqli_query($bd, $query_url);
    if ($sql_s) {
        echo 'Ссылка на файл успешно сохранена в базу!';
    } else {
        echo '<br>Ошибка при сохранении ссылки в базу! :(';
    }
}

P.S. За пределами функции все нормально, но мне нужно именно в функции понять что да как.

Answer 1

Внутри функции нет переменной $bd. Что бы пробросить ее снаружи, нужно в начале функции написать

global $bd;

А лучше передавать ее вторым параметром.

READ ALSO
Selenium и Unable To Identify Your Browser

Selenium и Unable To Identify Your Browser

Есть сайт https://www1ticketmaster

102
Теряются письма при отправке через php

Теряются письма при отправке через php

Отправляю html письмо стандартным методом через php

114
Пересчет валют PHP

Пересчет валют PHP

Как сделать пересчет валют, чтоб выводилась та валюта которая не равняется 0 Другими словами, должно умножаться то, что вводится в БД, если...

106
Вывести атрибуты у простого товара Woocommerce

Вывести атрибуты у простого товара Woocommerce

Подскажите как вывести атрибуты у простого товара? Есть простой товар и вариативный, у вариативного после артикула выводятся атрибуты размер...

110