如何使用php导入多个导出为文本的mysql查询?

时间:2017-03-25 08:05:01

标签: php mysql database mysqli

我正在尝试导入多个由php导出为文本的mysql查询。 导入的查询类似于

CREATE TABLE `custom` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`input_type` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`custom_section` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`custom_value` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`custom_price` decimal(5,2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE `custom_section` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`section_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`section_type` varchar(255) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

.........

该列表还有20个查询。

现在,我正在使用

$mysqli->query("CREATE TABLE .....");

为每个查询做这项工作。有一个更好的方法吗?我觉得必须有更简单的方法来实现这一目标。我不希望导入表单.sql,因为.sql文件太容易下载。

感谢。

1 个答案:

答案 0 :(得分:0)

如果您使用的是mysqli,则可以使用mysqli_multi_query。

所以,使用所有sql查询后跟一个变量;并使用multi_query

$sql = "CREATE ... ; CREATE .....; CREATE ..... ; ";
$mysqli->multi_query($sql);

应该这样做。