首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP高级MySQL存储过程语句中防止注入

问在PHP高级MySQL存储过程语句中防止注入
EN

Stack Overflow用户
提问于 2014-03-22 10:57:10
回答 1查看 230关注 0票数 1

我使用传递到存储过程的XML字符串将数据存储到数据库中。

通常,我使用PDO来创建预先准备好的语句,以避免通过bindParam()和bindValue(),然后是execute()来避免SQL injection。但是,为了优化我的数据库,我决定实现一个存储过程,它接收大量的XML数据,并同时完成所有的编写工作。

存储过程将使用迭代器遍历XML并将行插入数据库。

使用使用ExtractValue符号的XPath,我可以这样做:

代码语言:javascript
复制
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中的数据安全地存入数据库?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-22 11:07:18

我认为这种方法没有优化。一个基于PHP的解析,然后是一系列包装在事务中的准备好的插入,将很快就会出现。

无论如何,在一个过程中可以使用内联准备陈述。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22576679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档