【问题标题】:How to import SQL file from input with PHP? [duplicate]如何使用 PHP 从输入中导入 SQL 文件? [复制]
【发布时间】: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 查询执行。这无疑是一场安全噩梦,但它会起作用。

标签: php sql mysqli


【解决方案1】:

Mysql用终端导入SQL文件

mysql -u username -p database_name < file.sql

使用 PHP

system('mysql -u username -p database_name < file.sql');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-22
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    相关资源
    最近更新 更多