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.php
。db.php
中的数据库处理程序$pdo