我正在重新使用我所有的mysql_ *和mysqli连接来使用PDO,但我似乎甚至无法获得正确的基础知识。我有两个文件:一个创建连接并返回它,另一个利用连接来达到我认为必要的目的。但是,由于某些原因,我无法使连接正确返回以便利用。如果我运行任何PDO功能(查询,准备等),我得到的服务器响应为500,没有错误消息。不过,我知道,如果我创建连接并在同一个函数中查询所有内容,那么所有内容都是hunky-dory。我假设这是简单的,所以也许新鲜的眼睛可以帮助我。Cross-Class PDO无法执行
db_connect.php(形成连接):
class db_connect {
function __construct() {}
function __destruct() {}
public function connect() {
require_once 'db_info.php';
try{
$dbh = new PDO('mysql:host='.DB_HOST.';dbname='.DB_DATABASE, DB_USER, DB_PASSWORD);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch (PDOException $e) {
echo 'Connection Failed: ' . $e->getMessage();
}
return $dbh;
}
public function close() {
$dbh = null;
}
}
operations.php(使用连接):
class operations {
private $dbh;
function __construct() {
require_once 'db_connect.php';
$this->dbh = new db_connect();
$this->dbh->connect();
}
function runQuery() {
// causes 500 error, no logs:
$stmt = $dbh->query("SELECT * FROM myTable");
}
}
我搜索周围的一些答案,但没有我找到的解决方案为我工作。预先感谢您的帮助。
$ dbh-> query'是不是'$ this-> dbh-> query'?以便它引用您在操作类中创建的对象。同样在你的'db_connect'类上'close'函数不会做任何事情.. – dakdad
@dakdad我试过了,还是什么都没有。我真的只是试验和错误,这一点。问题是,我没有错误。 – burmat