我有一个商店,用户可以在那里购买虚拟物品,例如一次性加电和永久更改用户帐户。这些购买可能会改变不同表中的不同字段,而且可能会有很多项,所以我不想在每次添加新产品时都向PHP文件中添加新的内容。
我正在考虑将查询作为字符串保存到MySQL数据库中,然后当购买商品时,我可以从数据库中获取字符串并像这样运行它。
例如:表items将包含一个字段query_to_run,该字段将包含字符串UPDATE power_ups SET test = test WHERE test = 1,以便在用户购买商品时运行。
这有没有用过,或者有没有更好的方法?
发布于 2012-08-12 21:06:34
如果我要自己解决这个问题,我会使用OOP PHP来定义一个加电类,这个类具有不同类型的加电类型,根据它们必须进行的数据库编辑类型进行分类。
我认为你正在寻找的是更快的东西,你的解决方案是这样(在短期内),但是当你更新数据库结构或意识到你的旧模型不适合时,当你希望进行改进时会发生什么?
因为您的SQL查询是hard-coded查询,所以您必须重写每个查询,并且每次新启动所需的时间都比围绕它们构建soft-coded框架所需的时间更长。
所以,是的,只要您不介意在将来牺牲应用程序的可扩展性和灵活性,您的方法就会在实践中发挥作用。
发布于 2012-08-12 21:07:09
在数据库中存储查询可能比您想象的更安全。如果插入查询的唯一方法是通过您自己的代码,那么您将不会真的面临注入攻击的风险(假设您自己编写所有代码,并且您没有包括像and where ID=$POST这样的东西……在他们身上。
因此,在这一点上,是的,将SQL保存在数据库中是安全的。
这就是但是。
但是,我认为您最好编写一个简单的对象来处理这些类型的请求。您可以非常容易地创建一个安全可靠的对象,该对象接受UserID并在查询中将其发送到数据库-而不需要在数据库中存储任何SQL (例如,似乎唯一要更改的是用户ID?
发布于 2012-08-12 20:58:21
我更希望你通过php来做这件事,因为它更高效,更不容易受到攻击。
https://stackoverflow.com/questions/11922318
复制相似问题