Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php和sql类_Php_Mysql_Oop - Fatal编程技术网

php和sql类

php和sql类,php,mysql,oop,Php,Mysql,Oop,我期待着创建一个网络应用程序使用php,mysql。我打算在课堂上写 我创建了3个类:CBaseUser、CWaiter、CBaseAuth 所以基本上,CBaseUser将是CWaiter的父类,CBaseAuth包含诸如GetPasswdLen()、CreatePasswd()和GetToken()之类的内容 所以现在我要做的是程序的其余部分,需要插入、删除、更新、登录等等 我在这里有点困惑,因为我不确定应该在哪里执行sql查询功能。我应该在CWaiter做吗 有人能告诉我PHP中的OOP吗

我期待着创建一个网络应用程序使用php,mysql。我打算在课堂上写

我创建了3个类:CBaseUser、CWaiter、CBaseAuth

所以基本上,CBaseUser将是CWaiter的父类,CBaseAuth包含诸如GetPasswdLen()、CreatePasswd()和GetToken()之类的内容

所以现在我要做的是程序的其余部分,需要插入、删除、更新、登录等等

我在这里有点困惑,因为我不确定应该在哪里执行sql查询功能。我应该在CWaiter做吗


有人能告诉我PHP中的OOP吗?例如创建PHP web程序的最佳实践。

如果您正在执行所有OO,那么在深入研究sql事务之前,您可能需要先了解一下。db使数据库不可知系统成为可能,这意味着您可以在mysql、postgre等上运行它,而无需更改一行代码

我在这里有点困惑,因为我不确定应该在哪里执行sql查询功能。我应该在CWaiter做吗

可以,但通常认为将SQL查询保存在业务逻辑的单独位置(即单独的一组源代码文件)是一种良好的做法

“MVC”是人们经常谈论的一种模式,它涉及到将“模型”(即需要了解数据库结构的任何内容,例如所有SQL)“视图”(绘制UI的任何内容,通常意味着模板引擎)和“控制器”(所有业务逻辑,将其全部绘制在一起)的代码分离

这意味着您将拥有一组不同的类,这些类的名称为CBaseUserDB或cwaiterb(或其他任何名称),用于任何需要更新/查询数据库的内容。这是一个简单的例子,只是为了说明我的观点

分离这一点背后的想法是,SQL、模板代码和业务逻辑都相互交织在一起,可能会很混乱或难以遵循

您可能还想看看PDO,它是一种比mysql和mysqli更现代的数据库访问方式。它包含一些额外的特性,如预处理语句,但我认为主要的好处是,这意味着您的知识将更加经得起未来的考验,并且您将能够轻松地适应不同的数据库API。与前面的答案不同,我不太喜欢像pear::db这样的高级抽象,但这取决于您个人的意见。

请参阅类似的问题。您确实希望避免重复结构相似的查询,但是很少有程序员知道如何在“绿地”项目中这样做