这里我有一个名为DB的类,它用于准备一个pdo语句,然后在PDO对象上执行select
,insert
等。在这里我试图insert
收集一些数据一个html表单。但是当我执行代码时,它给了我在问题中提到的错误。 getInstance()
和insert()
都是公共静态函数。任何人都可以帮我解决这个问题吗?
class DB{
private static $_instance=null;
private $pdo,
$query,
$error=false,
$results,
$count=0;
private function __construct(){
try{
$this->pdo=new PDO('mysql:host='.Config::get('mysql/host').';dbname='.Config::get('mysql/db'),Config::get('mysql/user'),Config::get('mysql/password'));
}catch(PDOException $e){
echo $e->getMessage();
}
}
public static function getInstance(){
if(!isset(self::$_instance)){
self::$_instance=new DB();
}
return self::$_instance;
}
private function bind($val){
$i=1;
foreach($val as $data){
$this->query->bindValue($i,$data);
}
$i++;
}
public static function insert(){
$stmt='INSERT INTO users (username,password,name) VALUES (?,?,?)';
if($this->query=$this->pdo->prepare($stmt)){
$val=Validate::send();
$this->bind($val);
if($this->query->execute()){
return 'successfull';
}
}
}
}
我调用了它们:
if(isset($_POST['submit'])){
$insert=DB::getInstance();
$insert::insert();
}
答案 0 :(得分:1)
您在静态功能中使用$ this。这就是你得到错误的原因。
删除"静态"在"插入()"前面然后拨打$insert->insert();