LOAD XML LOCAL INFILE:REPLACE子句在phpMyAdmin中工作,但不在PHP脚本中工作

时间:2015-11-21 05:56:27

标签: php mysql sql

以下适用于PHP。我看到我的'加载成功'回声。

$sql = "
LOAD XML LOCAL INFILE 'test.xml'
INTO TABLE test
ROWS IDENTIFIED BY '<row>'
";

if (mysqli_query($dbc, $sql)) {
    echo "Load Successful";
} else {
    echo "Load Error";
}

如果我在phpMyAdmin GUI中提交它,那么下一步是有效的:

LOAD XML LOCAL INFILE 'test.xml'
REPLACE
INTO TABLE test
ROWS IDENTIFIED BY '<row>'

为什么以下不适用于PHP?我正在收到“加载错误”回声。

$sql = "
LOAD XML LOCAL INFILE 'test.xml'
REPLACE
INTO TABLE test
ROWS IDENTIFIED BY '<row>'
";


if (mysqli_query($dbc, $sql)) {
    echo "Load Successful";
} else {
    echo "Load Error";
}

非常困惑。显然缺少一些简单的东西。任何指针都将非常感激。苦苦挣扎着调试。

1 个答案:

答案 0 :(得分:0)

为了解决这个问题,我尝试在加载数据之前先删除PHP中的所有内容,而不使用replace子句。

问题解决了。我试图执行此操作的数据库用户没有删除权限。

REPLACE需要DELETE权限。