【发布时间】:2020-01-04 02:05:14
【问题描述】:
我有一个带有输入文件的表单,我希望用户上传一个 sql 文件,用 php 读取它并将其导入我的数据库
我的表单代码是
<div class="form-row" >
<div class="form-group col-md-4">
<input type="file" accept=".sql" class="form-control" name="sql">
</div>
<div class="form-group col-md-4">
<button type="submit" formaction="upload_sql.php" style="margin-top:8%" class="btn btn-primary" name="upload_sql">Upload</button>
</div>
</div>
但我不知道如何将该文件导入我的数据库,我尝试使用“mysql -u root -p database
【问题讨论】:
-
您可能希望他们上传 CSV 文件,而不是 SQL 文件。如果您的用户上传了一个 SQL 文件,您将无法可靠地安全地执行它,即没有诸如删除表或授予用户之类的东西。 CSV 文件将允许您接受某种批量格式的数据,并安全地导入它。 PHP 内置了处理 CSV 数据的方法,请参阅php.net/manual/en/function.fgetcsv.php
-
同意。但我想如果 OP 想坚持他的方法,一个 SQL 文件基本上只是一个长 SQL 命令,不是吗?所以我想上传文件,读取它的内容,然后将该字符串作为 mysql 查询执行。这无疑是一场安全噩梦,但它会起作用。