我为我的 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 的唯一插件。我会很感激任何指导。