php - 带有 --local-infile 参数的 mysql_connect

标签 php mysql sql load-data-infile

自升级mysql(当前版本:服务器版本:5.5.44-0+deb8u1(Debian))后,无法从上传的(本地)文件加载数据,隐含的文件是:

数据库连接.php

<?php
$server = "localhost";
$user = "TheUser";
$pass = "ThePass";
$db_name = "DbName";
$link = mysql_connect($server, $user, $pass);
mysql_select_db($db_name);
mysql_set_charset('utf8', $link);
?>

发送2db.php

<?php
include 'dbconnection.php';
mysql_select_db("DbName") or die(mysql_error());
$query = "LOAD DATA LOCAL INFILE '$file' INTO TABLE `T1` FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\"' ";
mysql_query($query) or die(mysql_error());
?>

错误说:

ERROR 1148 (42000): The used command is not allowed with this MySQL version

在 mysql 内部:

SHOW GLOBAL VARIABLES LIKE 'local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  | ON    |
+---------------+-------+
1 row in set (0.00 sec)

但是如果我这样访问mysql,是可以加载文件的:

mysql --local-infile -p

所以我的问题是,我可以在 dbconnection.php 文件中设置这个选项吗,我已经尝试了很多方法都没有成功,我一直在阅读关于 my.cnf 配置和其他一些东西的帖子,但没有任何效果我,有什么建议吗?

谢谢

更新: 我一直在将整个网络的代码更改为 mysqli,ufff !!,按照下面答案的建议我做了下一个代码但没有成功,我仍然收到消息:“不允许使用使用的命令这个 MySQL 版本”。接下来是隐含文件:

acessdb.php

<?php
$link = new mysqli($server, $user, $pass, $dbname);
?>

发送2db.php

<?php include 'acessdb.php';
$link->options(MYSQLI_OPT_LOCAL_INFILE, true);
mysqli_query($link, "LOAD DATA LOCAL INFILE 'upfiles/file.csv' INTO TABLE `T1` FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\"'") or die(mysqli_error($link));
$link->options(MYSQLI_OPT_LOCAL_INFILE, false);
?>

有什么建议吗?

最佳答案

在 my.cnf(或您系统上的 mysql 配置文件)中设置选项:

local-infile=1

重新启动 MySQL 服务,这应该可以为您解决问题。

更新 尝试使用 PHP 的另一种选择

$conn = mysqli_init();
$conn->options(MYSQLI_OPT_LOCAL_INFILE, true);

尝试一下,看看是否可行。选项链接 mysqli options

关于php - 带有 --local-infile 参数的 mysql_connect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32438438/

相关文章:

mysql - 为什么我需要运行此脚本两次才能删除所有重复项?

php - Laravel Eloquent - 一张 table 的多个模型

mysql - 如何在 MYSQL 行中存储二维数组?

javascript - 如何将 PHP 的输出显示为 HTML

php - 使用 php 和 mySqli 建表

c# - 从两个数据表中选择 Linq to SQL 中的不同和日期差异

sql - 使用 PostgreSQL 9.3 在 CTE UPSERT 中生成 DEFAULT 值

javascript - onClick window.open PHP 中的两个链接不起作用

php - 如何在不让用户下载字体的情况下嵌入字体?

php - 用于订阅的 Laravel 中间件