0

我为我的 Wordpress 网站编写了一些基本的自定义 PHP 代码。该代码基本上访问 MySQL 数据库(与 wordpress 数据库不同的数据库)并显示信息。除了在主页上运行它,我还需要它在侧边栏上运行。代码在主页中完美运行,或者在侧边栏中运行完美,但是当我将代码放入两者时,边栏中出现以下错误:

致命错误:在 /home/kimusubi/public_html/wp-content/plugins/php-code-widget/execphp.php(44) 中的非对象上调用成员函数 prepare():eval()'d code on第 5 行

我认为这是同时访问同一个表和数据库的问题,但我正在使用 include_once 并在完成后立即关闭我的连接,所以我不确定问题是什么。这是我用于侧边栏和主栏页面的代码:

<?php
include_once 'db_config.php'; //Include database configuration file
$current_user = wp_get_current_user()->user_login; //Get current WP logged in user
try { //Access accounts table and pull user info into associative array
    $STH = $DBH->prepare("SELECT * FROM accounts WHERE accnt = :accnt");
    $STH->bindParam(':accnt', $current_user);
    $STH->execute();
    $Result = $STH->fetch(PDO::FETCH_ASSOC);
    $DBH = null;
    }
catch(PDOException $e) {  
    echo "Select Accounts Table Error: " .$e->getMessage(). "</br>"; //Display Error (if any)
}

$available = min($Result['week_two'],$Result['week_one'],$Result['current']);

echo "Account: " .$Result['accnt']. "</br>";
echo "Name: " .$Result['first']. " " .$Result['last']. "</br>";
echo "Address: " .$Result['address']. ", " .$Result['city']. ", " .$Result['state']. ", " .$Result['zip']. "</br>";
echo "Phone: " .$Result['phone']. "</br>";
echo "Current Balance: $" .$Result['current']. "</br>";
echo "Available Balance: $" .$available. "</br>";
?>

这就是我的 db_config.php 文件中的内容:

<?php
try {
$DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );

}
catch(PDOException $e) {  
    echo "Select DB Error: " .$e->getMessage(). "</br>";
}

?>

Exec-PHP 是我用来直接从 Wordpress 执行 PHP 的唯一插件。我会很感激任何指导。

4

0 回答 0