PHP/MySQL-调用成员函数query()
到目前为止,我的代码运行良好。 我不知道怎么了PHP/MySQL-调用成员函数query(),php,mysql,function,Php,Mysql,Function,到目前为止,我的代码运行良好。 我不知道怎么了 public function maintenanceAll() { $zeile = $this->db->query('SELECT * FROM maintenance LIMIT 1'); $row = $zeile->fetch(PDO::FETCH_ASSOC); if (!$row['status']) { return true; } else {
public function maintenanceAll()
{
$zeile = $this->db->query('SELECT * FROM maintenance LIMIT 1');
$row = $zeile->fetch(PDO::FETCH_ASSOC);
if (!$row['status']) {
return true;
} else {
return false;
}
}
现在只有:
[Mon Mar 07 11:30:55.802597 2016] [:error] [pid 6064] [client 5.135.44.40:37955] PHP Fatal error: Call to a member function query() on string in /home/admin/web/creative-cube.biz/public_html/classes/User.class.php on line 145
我希望任何人都能帮助我/
//编辑:
(与数据库的连接)DB.class.php:
class DB {
public function connect()
{
global $Config;
try {
return new PDO('mysql:host='.$Config["SQL_HOST"].';dbname='.$Config["SQL_DB"].'',''.$Config["SQL_USER"].'',''.$Config["SQL_PASS"].'');
} catch(PDOException $e) {
return $e->getMessage();
}
}
}
public function __construct()
{
$this->db = new DB();
$this->db = $this->db->connect();
}
User.class.php:
class DB {
public function connect()
{
global $Config;
try {
return new PDO('mysql:host='.$Config["SQL_HOST"].';dbname='.$Config["SQL_DB"].'',''.$Config["SQL_USER"].'',''.$Config["SQL_PASS"].'');
} catch(PDOException $e) {
return $e->getMessage();
}
}
}
public function __construct()
{
$this->db = new DB();
$this->db = $this->db->connect();
}
$this->db
不是数据库连接,而是字符串。检查数据库连接是否仍然正常工作。如果您的连接仍然有效,请确保没有覆盖$this->db
变量
编辑:
查看您发布的代码,连接有问题,它返回异常消息,并且设置为$this->db
try {
return new PDO('mysql:host='.$Config["SQL_HOST"].';dbname='.$Config["SQL_DB"].'',''.$Config["SQL_USER"].'',''.$Config["SQL_PASS"].'');
} catch(PDOException $e) {
return $e->getMessage();
}
您是如何创建连接的?显示U请提供连接代码。没有问题。所有其他构造类似于该函数的函数都可以正常工作。@RayJohnson有点不对劲。也许在此之前调用的某个东西正在以一种您不期望的方式设置
$this->db
,错误信息表明连接不是它期望的。但这怎么可能呢?在另一个Web服务器上,它可以完美地工作:/可能在另一个Web服务器上,数据库IP、端口、用户名、密码等不同。如果您将$this->db
转储并发布字符串,它将为您提供更多信息。我的数据库连接不正确。那太尴尬了。谢谢^^没问题!我建议你删除你在这篇文章中的答案,因为它不是答案,你可以把答案编辑到你的问题的顶部:)。