Php 如何解决;致命错误:调用成员函数query();

Php 如何解决;致命错误:调用成员函数query();,php,mysql,pdo,dreamhost,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

刚刚将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;
}

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

$pdo
更改为
$conn

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

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

“$result=$pdo->query($sql);”-这不是什么标题。实际上很糟糕。您的PDO连接是
$conn
,而不是
$PDO
…请仔细查看您的变量