我有一个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)
答案 0 :(得分:0)
答案 1 :(得分:0)
你有双重麻烦。
该错误是外键约束错误。您尝试创建的某些表可能具有另一个尚未创建的表的外键。
我在这里找到了一些错误的实例:
第二个问题是你可能会在尝试导入一个大文件时遇到麻烦,因为我认为你不能执行多个sql命令分隔;就像你可以在phpmyadmin中一样。我建议使用像这样的脚本:
我自己没有尝试过,但我没有理由相信它不起作用。