我一直在努力寻找如何遵循以下过程中的OOP。PHP OOP无法查询mysqli
这是我的连接类,它处理我与数据库的连接。
<?php
class Connection{
public $con = null;
public function __construct(){
return $this->con = new mysqli("127.0.0.1:3306", "root", "root", "tester");
}
}
?>
这里是我的助手类,这个类包含所有将在我的webapp像插入数据的使用,删除和更新的常用方法。
<?php
class Helpers{
public $con = null;
public function __construct($connection){
$this->con = $connection;
}
public function register($name){
$con = $this->con;
$sql = "insert into name(Name)value($name);";
$con->query($sql);
}
}
?>
现在,我打电话给他们这样在我的register.php
<?php
require "Connection.php";
require "Helpers.php";
$connection = new Connection();
$Helpers = new Helpers($connection);
$Helpers->register("Keannu");
?>
但我收到以下错误:
Call to undefined method Connection::query().
我做了什么错?
既然你包装它两次,你将不得不使用'$ this-> con> con> query()'然后。避免额外的包装。并研究PDO而不是mysqli。最后这样做不会太费力(特别是对于更简单的参数绑定)。 – mario
你正在做一个双重包装,所以它将成为'con> con'。你应该重新考虑你的结构。 Imo –
@mario 好吧,现在错误消失了,但没有添加到我的数据库中。 –