我正在尝试导入多个由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文件太容易下载。
感谢。
答案 0 :(得分:0)
如果您使用的是mysqli,则可以使用mysqli_multi_query。
所以,使用所有sql查询后跟一个变量;并使用multi_query
$sql = "CREATE ... ; CREATE .....; CREATE ..... ; ";
$mysqli->multi_query($sql);
应该这样做。