例外を発生させずに MySQL にテーブルが存在するかどうかを確認する
MySQL にテーブルが存在するかどうかを確認することは、データベースの移行などのさまざまなシナリオで重要になる可能性があります。またはデータ操作。ただし、特にパフォーマンスの問題や競合が発生した場合、例外によって実行フローが中断される可能性があります。
プリペアド ステートメントを使用した推奨アプローチ
例外なくテーブルの存在を確認するには、推奨されるアプローチには、information_schema データベースのクエリが含まれます。 information_schema には、テーブル定義など、現在のデータベースに関するメタデータが含まれています。このスキーマに対して準備されたステートメントを実行すると、潜在的な解析エラーや例外を回避できます。
SQL ステートメントと実装
次の SQL ステートメントを使用してテーブルをチェックできます。存在:
SELECT 1 FROM information_schema.tables WHERE table_schema = database() AND table_name = ?
PDO を使用する PHP では、このクエリを次のように実行できます。
$sql = "SELECT 1 FROM information_schema.tables WHERE table_schema = database() AND table_name = ?"; $stmt = $pdo->prepare($sql); $stmt->execute([$tableName]); $exists = (bool)$stmt->fetchColumn();
このアプローチは、指定されたテーブルの存在を示すブール値を返します。テーブルが存在する場合、$exists は TRUE になります。それ以外の場合は FALSE になります。
以上がMySQL テーブルの存在を例外なく確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。