在學習之前,需要先了解 UpdateXml() 。
UPDATEXML (XML_document, XPath_string, new_value);
第一個參數:XML_document是String格式,為XML文檔對象的名稱,文中為Doc
第二個參數:XPath_string (Xpath格式的字符串) ,如果不了解Xpath語法,可以在網上查找教程。
第三個參數:new_value,String格式,替換查找到的符合條件的數據
作用:改變文檔中符合條件的節點的值
然后咱們再看看語句:
http://www.XXXIII.com/a.php?id=1 and updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)
CONCAT(str1,str2,…)
返回結果為連接參數產生的字符串。如有任何一個參數為NULL ,則返回值為 NULL。
通過查詢@@version,返回版本。然后CONCAT將其字符串化。因為UPDATEXML第二個參數需要Xpath格式的字符串,所以不符合要求,然后報錯。
錯誤大概會是:
ERROR 1105 (HY000): XPATH syntax error: ’:root@localhost’
不懂Xpath格式的字符串的來這里:http://www.cnblogs.com/Loofah/archive/2012/05/10/2494036.html