2

我有一个 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)
4

2 回答 2

0

你总是可以只看源代码

于 2010-04-01T19:33:37.080 回答
0

你有双重麻烦。

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

我在这里发现了一些错误实例:

通过谷歌搜索:

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

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

于 2010-04-01T20:13:25.137 回答