Web 開発の領域では、共有ホスティング プロバイダーを一般的に使用しながら、大きなデータベース ファイルをインポートする必要があります。が生じます。残念ながら、コマンド ラインを介した MySQL へのアクセスは制限されている可能性があり、クエリの解析と実行には PHP ベースのソリューションが必要になります。
この課題に対処するために、SplitSQL() として知られる堅牢な関数が開発され、
SplitSQL() は、ファイル読み取りアプローチを活用し、ファイルを 1 行ずつ繰り返し処理します。行末にある指定された区切り文字 (デフォルトでは;) を検出することでクエリを識別します。完全なクエリが組み立てられると、mysql_query() を使用してすぐに実行されます。
<code class="php">function SplitSQL($file, $delimiter = ';') { set_time_limit(0); if (is_file($file) === true) { $file = fopen($file, 'r'); if (is_resource($file) === true) { $query = array(); while (feof($file) === false) { $query[] = fgets($file); if (preg_match('~' . preg_quote($delimiter, '~') . '\s*$~iS', end($query)) === 1) { $query = trim(implode('', $query)); if (mysql_query($query) === false) { echo '<h3>ERROR: ' . $query . '</h3>' . "\n"; } else { echo '<h3>SUCCESS: ' . $query . '</h3>' . "\n"; } while (ob_get_level() > 0) { ob_end_flush(); } flush(); } if (is_string($query) === true) { $query = array(); } } return fclose($file); } } return false; } // Test data $file = '/path/to/db_dump.sql'; SplitSQL($file);</code>
以上がPHP を使用して大きな MySQL ファイルを共有ホスティングに効率的にインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。