私はPHPページindex.php
を持っています。このページでは、MySQLデータベース(using mysqli
)との接続を作成し、いくつかのMySQLクエリを実行しています。 index.php
ファイルの先頭に接続($connection = new mysqli("localhost", "root", "");
)を開き、index.php
ファイルの最後に接続($connection->close()
)を閉じています。 index.php
のHTML <head>
部分内
は、私はいくつかのMySQL SELECT
クエリを行い、別のPHPファイルload_more_data.php
にAJAX呼び出しを行うjQueryのスクリプトが含まれています。このJQueryスクリプトは、ボタンのクリックで呼び出されます。
load_more_data.php
ファイルでは、私は同じデータベース($connection = new mysqli("localhost", "root", "");
を呼び出して)と新しい接続を開き、クエリを実行します。 問題があります:$connection->query($sql)
からindex.php
までクエリを実行すると、正常に実行され、正しいデータセットが返されます。同じ質問をload_more_data.php
から実行すると、$connection->query($sql)
が返されます。FALSE
が返されます。
質問:
私は2つの質問があります。
をこれは正しいアプローチですか?それはデータベースに問い合わせる必要がある各ファイルに新しい接続オブジェクトを作成していますか?またはサーバー側(
index.php
)からAJAXがその接続オブジェクトをサーバー側(load_more_data.php
)に送信するクライアント側(JQueryスクリプト)に1つの接続オブジェクトを渡す方法がありますか?このことについてどうすればいいですか?load_more_data.php
から呼び出された場合、それはindex.php
から呼び出され、データベースからフェッチされた適切な予想されるデータセットを返すときなぜ
$connection->query($sql)
は、FALSEを返すのですか?
あなたの 'load_more_data.php'ファイルに関連するコードを共有できますか? falseを返している場合は、 '$ connection-> error'であなたを待っているエラーがあるはずです。 – Qirel
リクエストがAJAXで行われたかどうかはPHPでもMySQLでも気にしません。クエリにはおそらくエラーが含まれています。コードを投稿し、コードにエラーチェックを追加します。 –