phpMyAdmin中导入的程序等效

时间:2010-04-01 18:45:35

标签: php mysql mysql-error-1005

我有一个SqlDump.sql文件,当我使用phpMyAdmin的导入功能应用它时工作正常,但我需要能够以编程方式完成此操作。作为一个菜鸟,我试着做这样的事情:

$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)

2 个答案:

答案 0 :(得分:0)

你可以随时look at the source code

答案 1 :(得分:0)

你有双重麻烦。

该错误是外键约束错误。您尝试创建的某些表可能具有另一个尚未创建的表的外键。

我在这里找到了一些错误的实例:

通过谷歌搜索:

第二个问题是你可能会在尝试导入一个大文件时遇到麻烦,因为我认为你不能执行多个sql命令分隔;就像你可以在phpmyadmin中一样。我建议使用像这样的脚本:

我自己没有尝试过,但我没有理由相信它不起作用。