2

phpMyAdmin のインポート機能を使用して適用すると問題なく動作する SqlDump.sql ファイルがありますが、これをプログラムで実行できるようにする必要があります。初心者なので、私は次のようなことをしようとしました:

$SQL=file_get_contents('SqlDump.sql');
$DB=mysqli_connect('localhost','root','');
mysqli_select_db($DB,'somedb');
if (mysqli_multi_query($DB, $SQL)) {
    do {
        if ($result = mysqli_store_result($DB)) {
            mysqli_free_result($result);
        }
    } while (mysqli_next_result($DB));
}
$Err=mysqli_error($DB);
mysqli_close($DB);

しかし、あらゆる種類の mysql エラーが発生します。それでも、phpMyAdmin を使用してインポートすると、同じファイルが正常に機能します。これをプログラムで動作させるにはどうすればよいですか?

エラー:

Can't create table 'somedb.t_sr_u_alertcode' (errno: 150)
4

2 に答える 2

0

あなたは二重の問題を抱えています。

そのエラーは外部キー制約エラーです。作成しようとしているテーブルには、まだ作成されていない別のテーブルへの外部キーが含まれている可能性があります。

ここでエラーのいくつかのインスタンスを見つけました:

これをグーグルで:

2 番目の問題は、大きなファイルをインポートしようとするとおそらく問題が発生することです。あなたがphpmyadminでできるように。次のようなスクリプトを使用することをお勧めします。

自分で試したことはありませんが、うまくいかないと信じる理由はありません。

于 2010-04-01T20:13:25.137 に答える
0

いつでもソースコードを見ることができます

于 2010-04-01T19:33:37.080 に答える