php - SQL 查询和临时文件权限

标签 php html mysql load-data-infile

我正在尝试使用 HTML/PHP 在 MySQL 数据库中导入一个 .csv 文件。代码是:

HTML

<form method="post" action="" enctype="multipart/form-data">
  File: <input type="file" name="csv"> 
  <input type="submit" value="Send" name="subCSV">
</form>

PHP

$file = $_FILES["csv"]["tmp_name"];

try {
  $query = $connexion -> prepare("LOAD DATA INFILE ? into TABLE myTable FIELDS TERMINATED BY ';' LINES TERMINATED BY '\\r\\n' IGNORE 1 ROWS");
  $query->bindValue(1, $file, PDO::PARAM_STR);
  $query->execute();
} catch(PDOException $e) { echo $e->getMessage(); $errorCode = $e->getCode();

但是我收到了那个错误:

File '/tmp/phpl8eY59' not found (Errcode: 13)

明确指定文件有效。权限很好,运行 Apache 的用户和文件所有者是相同的。我已授予数据库用户文件权限。

显然配置 AppArmor 可以解决问题,但我没有使用它,因为它没有安装在我的服务器上。

最佳答案

您可以尝试使用“LOAD DATA LOCAL INFILE”。在这里查看答案:LOAD DATA INFILE does not work .问题是这个问题似乎有多种原因。

关于php - SQL 查询和临时文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35461031/

相关文章:

php - 检查多维数组的每个子数组是否包含元素

php - 无法将两个数组合并为一个来获取 SQL 查询

mysql - 连接(?)或联合(?)两个表中两列的值,填充空白

PHP 邮件功能不起作用

php - laravel 5.3 不解释 index.php

html - 带有锚定标签的 WordPress 当前页面元素

jquery - 基础工具提示不起作用;而是显示默认浏览器工具提示

java - Android Studio Sql Server 连接

php - 从分层表创建一个平面数组

javascript - 如何在用作nodejs服务器响应的html文件中包含外部脚本