【问题标题】:Programmatic Equivalent Of Import in phpMyAdminphpMyAdmin 中导入的程序等效项
【发布时间】:2011-02-03 12:04:07
【问题描述】:

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

【问题讨论】:

标签: php mysql mysql-error-1005


【解决方案1】:

你总是可以look at the source code

【讨论】:

    【解决方案2】:

    你有双重麻烦。

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

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

    通过谷歌搜索:

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

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

    【讨论】:

    • phpMyAdmin 可能会在加载过程中禁用外键约束
    猜你喜欢
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    相关资源
    最近更新 更多