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


LOAD XML LOCAL INFILE: REPLACE clause working in phpMyAdmin but not from PHP script

以下内容适用于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";
}

非常困惑。显然错过了一些简单的东西。任何建议都将不胜感激。调试困难。

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

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

REPLACE需要DELETE权限。

相关文章: