PHP 5.6 から 7.0 にアップグレードする場合は、MySQL から MySQLi に移行することが不可欠です。この移行により、特に別のクラスから MySQLi 接続にアクセスしようとする場合に課題が生じる可能性があります。この質問は、データベース クラスを使用して API クラスからデータベースに接続しようとすると内部サーバー エラーが発生するという状況の 1 つを強調しています。
問題の根本は、適切なプログラミング慣行に従うことにあります。データベース クラスからユーザーを拡張することは誤りであり、データベース クラス自体には重要な機能が欠けています。このエラーを解決し、全体的な設計を改善するには、次の手順を検討してください:
database.php <?php mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); $db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB"); $db->set_charset('utf8mb4');
myapi.php <?php class MyAPI { protected $db; public function __construct($db, $request_uri, $postData, $origin) { $this->db = $db; } public function getUser($id) { $sql = "SELECT * FROM users where>
app.php <?php require 'vendor/autoload.php'; // autoloading is recommended $api = new MyAPI($db, $request_uri, $postData, $origin); $user = $api->getUser($_POST['id']);
以上が異なる PHP クラスから MySQLi データベース接続に適切にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。