0

Wordpress サイト用にいくつかの基本的なカスタム PHP コードを作成しました。コードは基本的に MySQL データベース (wordpress データベースとは別のデータベース) にアクセスし、情報を表示します。メイン ページで実行するだけでなく、サイドバーでも実行する必要があります。コードはメイン ページまたはサイドバーで完全に機能しますが、コードを両方に配置すると、サイドバーに次のエラーが表示されます。

致命的なエラー: /home/kimusubi/public_html/wp-content/plugins/php-code-widget/execphp.php(44) の非オブジェクトに対するメンバ関数 prepare() の呼び出し: eval() されたコード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