(此文章是记录本人对知识理解的随手笔记,内容不肯定百分百正确,如有错误望指出并谅解)
先看一个通俗易懂的例子:
select updatexml(“abc”,"//div/p/text()","abcd") 的意思是把"abc"换成"abcd" ,而服务器要通过xpath路径"//div/p/text()"找到"abc" 。
这时如果xpath路径格式出错了,则会把校验xpath路径后的结果通过报错信息显示出来,如果我们把xpath路径改成我们想知道的信息,结果就会通过报错信息显示出来。
例如改成select updatexml(“abc”,concat(“~”,database()),"abcd") 就可以通过报错信息得到当前服务器使用数据库的名字(如下图所示)。
concat()函数的作用是把“~”和database()执行后的结果拼接起来,使用concat()的目的是为了让xpath路径格式出错,因为xpath路径格式中没有 ~ ,出错后就会让语句执行后的结果通过报错显示出来。