pdo错误:产品子变体:产品:(致命错误:在非对象上调用成员函数prepare())

时间:2011-09-09 07:26:19

标签: php pdo

我在php中使用pdo,我得到的错误是:

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

我在一个类中有这段代码,我在php中调用它,该类包含在调用它的页面中。

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 :(得分:0)

你还没有将$ db传递给函数,所以它不知道$ db-> prepare()应该做什么。如果您希望全局访问$ db类,我建议使用singleton class。您还可以将$ db声明为global variable

答案 1 :(得分:0)

您试图错误地访问$db变量,该变量看起来像global。添加

global $db;

在你的功能开始时。

错误消息告诉您正在调用prepare非对象的内容。但是我们都知道它是一个对象,因为你将它设置为某个值(它不可能是例如一个字符串)。由于某种原因,只留下具有您在函数内设置的值的可能性。这引出了我们的答案。