gpt4 book ai didi

php - mysql 5.1.73加载数据本地infile错误

转载 作者:行者123 更新时间:2023-11-29 12:26:51 24 4
gpt4 key购买 nike

我正在尝试使用下面的代码使用 LOAD DATA LOCAL INFILE 将数据加载到 mysql 表中。

将数据本地内文件'unziped/product.csv'加载到表producttemp字段中,以','结尾,由'"'封闭,由'\'转义,以'\r\n'结尾的行

直到几天前,我的脚本工作正常,但后来托管公司将 mysql 更新到 5.1.73,现在我收到错误“此 MySQL 版本不允许使用该命令”。

我不知道服务器上之前的版本是什么。此命令在 mysql 5.3 和 5.5 上也可以正常工作

这里可能有什么问题?

我尝试谷歌但找不到任何类似的问题

最佳答案

如果您从 PHP 代码运行该命令,则可以在与 MySQL 服务器的连接上启用 LOAD DATA LOCAL INFILE 命令。

具体过程取决于用于与 MySQL 通信的 PHP 扩展。

使用旧的、已弃用的 mysql 扩展:

128放入mysql_connect()的参数$flags中,OR-ed,像往常一样,以及您可能需要的其他 MYSQL_CLIENT_* 标志。值128启用LOAD DATA LOCAL处理,但没有为其定义常量。阅读 mysql_connect() 的文档页面.

// Put your connection parameters in $server, $username, $password as usual
$server = '127.0.0.1';
$username = 'root';
$password = '****';
// Put 128 bitwise OR-ed with other flags, if needed
$flags = 128;
// ... and connect
$link = mysql_connect($server, $username, $password, $new_link, $flags);

使用mysqli扩展:

使用mysqli_options()将 MYSQLI_OPT_LOCAL_INFILE 设置为 TRUE 的函数:

$link = mysqli_init();
mysqli_options($link, MYSQLI_OPT_LOCAL_INFILE, TRUE);
mysqli_real_connect($server, $username, $password);

正如文档中所解释的,这是使用 mysqli_options() 的正确方法。

使用PDO:

设置选项PDO::MYSQL_ATTR_LOCAL_INFILEPDO 构造函数的 $options 参数上设置为 TRUE:

$options = array(
PDO::MYSQL_ATTR_LOCAL_INFILE = TRUE;
);
$link = new PDO($dsn, $username, $password, $options);

关于php - mysql 5.1.73加载数据本地infile错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28195398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com