如何解决"致命错误:调用成员函数查询()"

时间:2015-11-20 14:55:35

标签: php mysql pdo dreamhost

database.php 文件从MySQL更改为PDO。但是我收到了这个错误:

  

致命错误:在第19行的/home/mypath/mydomain.com/library/database.php中调用非对象的成员函数query()

在进行更改的个人网站上工作正常。但是当上传到我的网站时,它会产生这个错误,不知道为什么。我使用DreamHost。怎么了?

第19行:

$result = $pdo->query($sql);    

代码优先:

<?php
require_once 'config.php';

try {
  $conn = new PDO("mysql:host=$servername;dbname=onlysecret_db", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
  echo "Connection failed: " . $e->getMessage();
}

function dbQuery($sql)
{
  global $pdo;
  $result = $pdo->query($sql);  
  return $result;
}

1 个答案:

答案 0 :(得分:0)

这是因为您正在访问$pdo,这是一个不存在的变量。

$pdo更改为$conn

function dbQuery($sql)
{
    global $conn;
    $result = $conn->query($sql);    
    return $result;
}

...但我建议不要使用global,而是将$conn作为参数传递给函数。