Ошибка pdo: Подвариант продукта: Product: (Неустранимая ошибка: вызов функции-члена prepare () для необъекта - PullRequest
0 голосов
/ 09 сентября 2011

Я использую pdo в php, и получаю ошибку:

Product sub variant: Product: (
Fatal error: Call to a member function prepare() on a non-object

У меня есть этот фрагмент кода в классе, и я вызываю его в php, класс включен в страницу imназывая это.

function get_variantname($variant_id)
    {
        $query = $db->prepare("select parent_attribute_label from tbl_parent_attribute where parent_attribute_id = :variant_id");
        $query->bindParam(":variant_id", $variant_id);
        $query->execute();

        while($row = $query->fetch(PDO::FETCH_OBJ))
        {
            return $row->parent_attribute_label;            
        }
    }

Ответы [ 2 ]

0 голосов
/ 09 сентября 2011

Вы пытаетесь получить неправильный доступ к переменной $db, которая выглядит как global. Добавить

global $db;

в начале вашей функции.

Сообщение об ошибке говорит вам, что prepare вызывается для чего-то, что не является объектом. Но мы все знаем, что это объект, поскольку вы устанавливаете его один раз на какое-то значение (нет никаких шансов, что это может быть, например, строка). Это оставляет только возможность того, что не будет иметь значение, установленное внутри функции, по какой-то причине. Что приводит нас к ответу.

0 голосов
/ 09 сентября 2011

Вы не передали $ db в функцию, поэтому она не знает, что должна делать $ db-> prepare ().Если вы хотите иметь глобальный доступ к вашему классу $ db, я бы предложил синглтон-класс .Вы также можете объявить $ db как глобальную переменную .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...