我使用传递到存储过程的XML字符串将数据存储到数据库中。
通常,我使用PDO来创建预先准备好的语句,以避免通过bindParam()和bindValue(),然后是execute()来避免SQL injection。但是,为了优化我的数据库,我决定实现一个存储过程,它接收大量的XML数据,并同时完成所有的编写工作。
存储过程将使用迭代器遍历XML并将行插入数据库。
使用使用ExtractValue符号的XPath,我可以这样做:
CREATE DEFINER=`$DBU`@`%` PROCEDURE `write_comment_rows`(In xml_string text)
BEGIN
insert into my_table (comment) values (
ExtractValue(xml_string, 'user_data/comment_field')
);
END;如何确保存储在XML中的comment_field中的数据安全地存入数据库?
发布于 2014-03-22 11:07:18
我认为这种方法没有优化。一个基于PHP的解析,然后是一系列包装在事务中的准备好的插入,将很快就会出现。
无论如何,在一个过程中可以使用内联准备陈述。
https://stackoverflow.com/questions/22576679
复制相似问题