LOAD DATA LOCAL INFILE查询中的错误(1148):此MySQL版本不允许使用该命令

时间:2014-08-13 21:46:04

标签: php mysql

我已经看过这个问题大约十几次了,似乎对每个人都有效的答案是相同的:将local-infile = 1添加到[mysql][mysqld],并添加{{ 1}}到my.conf。我已经完成了所有这些以及为我的数据库用户添加的文件权限,我仍然得到同样的错误。

我在虚拟Ubuntu 14.04服务器上运行MySQL 5.6。任何人都可以让我知道我错过了什么?我已经在我的实时服务器上成功运行了,这是一个运行CentOS和MySQL 5.6的VPS,我不记得必须通过任何环节来让它工作,虽然它是在不久前我设置它

如果重要,我正在尝试通过以下PHP函数进行导入:

[client] loose-local-infile=1

反过来就像这样调用:

// Connect to a database without using prepared statements (for LOAD FILE feed commands)
// $query = query to execute; $rs = return a result set if true
function db_query_unprepared($query, $rs = false) {
    // Create database connection
    $link = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
    if (!$link) {
        print 'Error connecting to MySQL Server. Errorcode: ' . mysqli_connect_error(); 
    exit; 
    }
    // Execute the query
    if ($rs) {
        $queryresults = array();
        $counter = 0;
        if (mysqli_multi_query($link, $query)) {
            do {
                // Save results to an array
                if ($result = mysqli_store_result($link)) {
                    while ($row = mysqli_fetch_assoc($result)) {
                        $queryresults[$counter][] = $row;
                    }
                    mysqli_free_result($result);
                    $counter++;
                }
            } while (mysqli_next_result($link));
        }
        else {
            print mysqli_error($link);
        }
    }
    else {
        mysqli_multi_query($link, $query);
    }
    mysqli_close($link);

    // Return the results
    if (isset($queryresults)) {
        return $queryresults;
    }
}

0 个答案:

没有答案