Php mysqli面向对象编程

Php mysqli面向对象编程,php,oop,mysqli,Php,Oop,Mysqli,我正在努力使我的登录主页正常工作。起初,我用mysql构建查询,但我总是发现错误查询为空,所以我决定改用mysql。我现在得到了错误警告:mysqli_查询至少需要2个参数。 如何从类database2中的connect方法调用mysqli_query$db,$string中的第一个参数$db使其工作? 我尝试使用$result=$this->cxn->query$query,但随后出现了错误致命错误:调用未定义的方法Database2::query 如果使用过程样式,则必须在database2

我正在努力使我的登录主页正常工作。起初,我用mysql构建查询,但我总是发现错误查询为空,所以我决定改用mysql。我现在得到了错误警告:mysqli_查询至少需要2个参数。 如何从类database2中的connect方法调用mysqli_query$db,$string中的第一个参数$db使其工作? 我尝试使用$result=$this->cxn->query$query,但随后出现了错误致命错误:调用未定义的方法Database2::query


如果使用过程样式,则必须在database2类中设置并使用$db变量。 在connect函数中设置变量:

$this->db = new mysqli($this->host, $this->user, $this->password); 
然后,您可以在database2对象中使用$db

$result = mysqli_query($this->cxn->db, $query);

什么是面向项目的编程?你是说面向对象编程吗?wtf正在进行mysql_close?您不能将密码以明文形式存储到数据库中。此外,如果您需要将它们保留在那里,则不需要将它们作为纯文本的私有成员保留。通常,您只需要在进行身份验证时使用密码散列,即在后台查询数据库以检查用户是否提供了正确的密码。mysql\u错误不适用于mysqli。此外,这不是程序样式。还有另一个提示:先分配一个局部变量以保持代码的灵活性,不管它来自哪里。PHP中的变量非常便宜,使您的代码变得更好。我的错误为mysql\u错误,对不起。但这是mysqli的过程性使用,在面向对象的风格中,您不必使用link参数EDIT:fix mysql\u error您所说的链接是一个对象。由于该过程需要对象,因此该过程本身是面向对象的。一旦理解,最好只写$result=$this->cxn->db->query$query;。函数名mysqli_query的使用很可能只会妨碍这一行代码。此外,您刚刚删除了任何类型的错误处理,这是不可暗示的。由于数据库是远程服务,因此错误处理非常重要。