1

こんにちは、Ajax を使用して呼び出してデータベース情報を取得するカスタム スクリプトがありますが、何らかの理由でこのファイルから呼び出しを行うことができません。それでも、テンプレートディレクトリのページにコードを配置すると、 tpl_products_all_default.php と言って、正常に動作します。カスタム スクリプトからクエリを実行できるようにするには、どうすればよいですか?

$sql = "select products_model from products where products_model = :productMdel:"; 
$sql = $db->bindVars($sql, ':productMdel:', 'C021', 'string'); 
$result = $db->Execute($sql); 

if ($result->RecordCount() > 0) { 
  echo 'Model number = ' . $result->fields['products_model']; 
} else { 
  echo 'Sorry, no record found for product number ' . $theProductId; 
}  
4

2 に答える 2

3

カスタムファイルをルートディレクトリに配置する必要があるため、最適なセットアップではないことは認めますが、答えがあるかもしれません。

カスタム ファイルがルート (/your_custom_file.php) に配置されている場合、次の require ステートメントを使用して $db にアクセスするには、次のようにします。

require('includes/application_top.php');

これにより、すべてのグローバルが初期化され、includes/initsystem.php も呼び出されます。これにより、オートローダーの値がスピンされ、各スクリプトがインクルードされます。auto_loader は、includes/auto_loaders/config.core.php で表示できます。v1.5 では、最終的に 81 ~ 82 行目に init_database.php スクリプトが含まれていることがわかります。init_database.php ファイルは最終的に $db を初期化します。

私は最初にあなたと同じ問題に遭遇し、失敗した /my_module_extensions/my_file.php のようなカスタム ディレクトリにカスタム ファイルを最初に追加したため、このセットアップをほとんど見逃していました。application_top.php はすべて相対パスでロードしているようで、ルート以外のディレクトリで実行すると失敗します。

これが役立つことを願っています!

編集: 当初は、管理者のカスタマイズについて話していると思っていました。これを公共側に関連するように言い換えました。管理コンソールを拡張する必要がある場合、これは管理側からも機能します。

于 2012-06-22T02:31:19.910 に答える