代码之家  ›  专栏  ›  技术社区  ›  Allain Lalonde

如何将SQL与PHP分开?

  •  2
  • Allain Lalonde  · 技术社区  · 16 年前

    Clean Code ,我希望我的PHP代码中没有SQL。目前,我正在使用准备好的语句,并将数据库访问代码分解为模型类。

    我最初的想法是将我的SQL分解成单独的SQL文件,然后在运行时加载它们。由于这涉及到更多的磁盘IO(我的直觉),我想知道是否有人建议用另一种方式来做。

    此外,我想知道是否有人尝试过这种方法,以及有什么好处(如果有回报的话)。

    3 回复  |  直到 16 年前
        1
  •  8
  •   madcolor    16 年前

    如果您只是想分离SQL,为什么不使用存储过程呢?

        2
  •  8
  •   cletus    16 年前

    我给你的建议是,不要犯很多人所犯的错误,试图把PHP变成它所不是的东西。

    这些都不是问题。

    您可以将SQL放在文本文件中并使用 file_get_contents() 但你有什么收获?

    绞尽脑汁并试图将其他语言和框架的原理应用到PHP中是毫无意义的。使用PHP做它擅长的事情(或者使用其他东西)。不管怎样,你都会更快乐。

        3
  •  5
  •   RC.    16 年前

    我认为您正在寻找的是数据访问层。我没有读过“干净的代码”,但我猜Bob叔叔的意思是不要到处都是原始SQL和数据库设置/访问代码。将数据库中的准备、执行等代码抽象到一个单独的模块中,并从那里开始工作。

    关于使用存储过程的评论也是一个好主意,尽管这是一个备受争议的话题,双方都有其优点。我倾向于使用SP,但它们并不适合所有人或任何情况。