-1

我只是在制作一个非常基本的 cms 来制作一个单页网站。一般用户无法访问 php。相反,它仅用于生成 html 站点。但是,如果可能的话,我可能会将代码用于一般用户。

由于某些原因,使用数据库会导致一些问题,所以我正在考虑使用 fopen。fopen 与 mysqli 相比如何?我只是想知道在什么阶段使用 fopen 变得更加负担。

谢谢

4

2 回答 2

7

用来fopen做什么?MySQL有什么问题?

反正两者是没法比的:

fopen是一个打开磁盘文件的函数,mysqli是一组用于处理 MySQL 数据库的函数。

fopen在同时请求中使用是不安全的 - 如果同一脚本同时运行两次(例如,两个人在彼此相隔几毫秒内发出相同的 GET 请求),那么如果其中一个脚本写入文件,则会发生损坏,所以你会必须使用锁定文件,这会降低性能。

使用 MySQL(版本 5+)可为您提供符合 ACID 的数据存储解决方案。

如果它是您所说的“单页网站”,那么您可能会侥幸使用fopen,只要确保使用适当的锁定文件(以及良好的安全性!)。

于 2013-03-15T03:25:11.053 回答
0

与将其放在文件系统上相比,研究诸如 WordPress、Drupal 或 Joomla 之类的 CMS 将是一个更好的选择,尽管我想指出这些 CMS 不仅仅能够提供静态页面。我不确定您希望在文件中存储什么样的数据,但您至少会遇到两个主要问题,integrity以及locking. 还是it's very hard for me to imagine how that might not create an unpleasant experience for a user especially with concurrency and locking ?

我不知道任何“ reasons using databases would cause a few problems”。Mysqli 是一个面向对象的 Mysql 驱动程序,它还允许 mysql 驱动程序为 php 不做的事情。

但是,是的,拥有数据库确实会带来一定的安全责任,但是通过良好的编程实践并遵循公认的范式,排除问题并不难。IMO 这是一种由我们对数据库的控制引起的问题。很多没有经验的开发人员已经公开了这一点。

如果您正在考虑从事 Web 开发之外的职业,那么研究 MVC 框架可能也是一个好主意。这些框架中包含大部分样板代码,其中一些迫使您遵循良好的实践,使您的应用程序可扩展、健壮和安全。

但对我来说,将它放在平面文件系统上是不,不,不......;)

于 2013-03-15T04:05:25.437 回答