致命错误:调用未定义的方法stdClass

时间:2009-10-14 19:35:43

标签: php mysql class

我收到错误消息

  

致命错误:在第68行的.......... / ... / includes / script / import.php中调用未定义的方法stdClass :: mysql_con()。

第68行对应于:

if(!$ip2c->mysql_con())

我的脚本开头有require_once()语句

这可能是什么问题?

由于

5 个答案:

答案 0 :(得分:10)

Dusoft says这可能意味着:

  • $ip2c对象不存在,

    哪个正确,因为您会收到不同的错误“Fatal error: Call to a member function mysql_con() on a non-object

他还说这可能意味着:

  • mysql_con函数不是您要调用的类的一部分

    这是真的但不太有用,因为很难将方法添加到stdClass

此外,它可能与序列化quote

有关
  • 当一个类实例被序列化到磁盘,然后在另一个请求中重新读取/反序列化但是尚未加载类定义时,通常会抛出此错误,因此PHP将其创建为“stdClass”(标准类)。 )

或者很可能,我认为:

  • $ip2c变量不是一个对象,然后php默默地将它转换为上面代码中某处的stdClass。

    如果直接在其上分配属性,可能会发生这种情况。

像:

 $ip2c = null;

 //php casts $ip2c to 'stdClass'
 $ip2c->foo = bah;

 //Fatal error: Call to undefined method stdClass::mysql_con() in...
 $ip2c->mysql_con();

查看better example here

答案 1 :(得分:1)

这意味着$ ip2c对象不存在或者mysql_con函数不是您要调用的类的一部分。

答案 2 :(得分:0)

我认为这是因为php.ini中未加载“extension = php_mysql.dll”扩展名。 看看

  

的phpinfo();

答案 3 :(得分:0)

可能是错误的代码。当我有这行代码时,我曾设法得到错误:

if ($myObj->property_exists('min')){
    // do something
}

导致错误行如下:

PHP致命错误:在myFile.php中调用未定义的方法stdClass :: property_exists()###

我后来将该行修改为:

if (property_exists($myObj, 'min')) {
    // do something
}

因此,请检查这种可能性。

答案 4 :(得分:0)

很可能该对象不存在。请告诉我们您如何创建它的代码。如果您在另一个类中使用它(例如,可以在__construct函数中创建它),请使用:

$ip2c = new Class;

不会削减它。而是做:

$this->ip2c = new Class;

然后

$this->ip2c->mysql_con();