PDO成员函数查询错误来了


pdo Member function query error coming

I am getting Call to a member function query() on a non-object in G:'PleskVhosts'angelsoftweb.com'angelunitrax.angelsoftweb.com'header.php on line 116 

数据库.php

<?php
$servername = "########";
$username = "########";
$password = "########";
$dbh = "rfid";
try {
$conn = new PDO('mysql:host=localhost;dbname=$dbh', $username, 
$password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'Error: ' . $e->getMessage();
}
?>

标头.php

<?php
foreach($sql=$conn->query("SELECT * FROM header_section") as $st) {
echo'
<div class="col-sm-2 col-md-2">
<ul style="margin-top: 13px;">
<li><a href="callus.php"><span style="margin-left:5px; color:white; 
font-size:16px; font-weight:bold;"><b>'.$st['call_us_name'].'</b></span>   
<span style="margin-left:5px; color:white; font-size:16px;
font-weight:bold;">'.$st['number'].'</span></a></li>
</ul>
</div>';
}
?>

试图解决这个问题,但没有得到什么问题,有人帮助我尽快解决这个问题......

问题是此行中的变量插值

'mysql:host=localhost;dbname=$dbh'

将单引号'替换为双引号"

您的脚本将该行中的变量作为字符串。

该行应如下所示

"mysql:host=localhost;dbname=$dbh"

您的数据库.php看起来像这样

<?php
$servername = "########";
$username = "########";
$password = "########";
$dbh = "rfid";
try {
$conn = new PDO("mysql:host=localhost;dbname=$dbh", $username, 
$password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'Error: ' . $e->getMessage();
}

首先,请在问题中指定哪一行是 116,如果我们能看到确切的运算符,回答起来会容易得多。

通常,当未正确创建连接对象时,会发生此错误。尝试将错误模式设置为异常并将其放在try..catch块中。

编辑:目前还不清楚$conn来自header.phpdb.php中的数据库处理程序$pdo