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
db.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();
}
?>
的header.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>';
}
?>
我试图解决这个问题,但没有得到什么问题,有人帮助我尽快解决这个问题......
答案 0 :(得分:0)
首先,请在问题中指明哪一行是116,如果我们能看到确切的算子,那么回答会更容易。
通常在未正确创建连接对象时会发生此错误。
尝试将错误模式设置为异常并将其放在 try..catch
块中。
$conn
header.php
来自db.php
的地方并不十分清楚。 $pdo
中的数据库处理程序为{{1}}
答案 1 :(得分:0)
问题是此行中的变量插值
'mysql:host=localhost;dbname=$dbh'
将单引号'
替换为双引号"
您的脚本将该行中的变量作为字符串。
该行应该如下所示
"mysql:host=localhost;dbname=$dbh"
你的db.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();
}