スリムフレームワークを使用してREST APIを作成しています。 mysql dbには、サーバーへの各リクエストに関する情報を格納するテーブルもあります。スリムフレームワークで外部スクリプトからMySQLクエリを実行
は、私はこのスクリプトを実行すると、私は私が持っている別のファイルと呼ばれるのfunctions.php log_request()関数
require_once('dbconnect.php');
function log_request() {
global $mysqli;
$query = "INSERT INTO log_table (....) VALUES (...) ";
$mysqli->query($query);
}
を持っている - 新しいレコードは、私のテーブルに追加されます。私はスリム
$app->get('/api/something', function($request, $response) {
require_once('dbconnect.php');
include_once('functions.php');
log_request();
});
を使用して、それを実行するときしかし、私はそうlog_request内部$ mysqliのは、()がnullであるヌル
上メンバ関数クエリ(へ
コール)、このエラーが発生します - それはなぜ起こるのですか?
接続していません! – shashi
ファイル 'functions.php'には既に' dbconnect.php'が含まれているので、そのファイルをコントローラ関数にも含める必要はありません。一般的に、私はdbクラスを作成することをお勧めします(または既存の優れたdb抽象ライブラリを使用する)。もし私がコメントをrequire_once( 'dbconnect.php'); –
;私のスリムコードのライン - 私は同じエラーがあります。スリムコードでdbconnect.phpスクリプトも必要です。あなたはそのような抽象化の例として答えを提供できますか? – moonvader