call to a member function query() in ....
<?php
class BasicModel{
protected $DB = NULL;
protected $table_name = NULL;
protected $_primary = NULL;
protected $_fieldList = NULL;
public $is_error = false;
public $error_msg = "";
protected function set_primary($var_name){
$this->_primary = $var_name;
}
protected function set_field_list($fieldList){
$this->_fieldList = $fieldList;
}
protected function set_table_name($table_name){
$this->table_name = $table_name;
}
//建立一个PDO数据库连接
protected function get_a_db_ob(){
$db_host = "localhost";
$db_username = "root";
$db_password = "";
$db_name = "mytestdb";
try{
$this->DB = new PDO(
"mysql:dbname=$db_name;host=$db_host;charset=utf-8",
"$db_username",
"$db_password"
);
$this->DB->query("Set Names 'UTF8'");
}catch (PDOException $e){
$this->is_error = true;
$this->error_msg = $e->getMessage();
}
}
//插入一条对象记录到数据库。。
protected function insert_into_DB(){
foreach ($this->_fieldList as $field){
$fields .= "`$field`,";
$values .= "'".$this->$field."',";
}
$fields = trim($fields,',');
$values = trim($values,',');
$query = "INSERT INTO `$this->table_name` ($fields) VALUES ($values)";
if(!$this->DB->query($query)){
$this->is_error = true;
$this->error_msg = $this->DB->errorInfo();
return false;
}else {
return $this->DB->lastInsertId();
}
}
}
?>
就是这个 ...提示错误是call to a member function query() in ....
就是if(!$this->DB->query($query))出错...
我用isset($this->DB)?"11":"22"; 显示22 ,也就是$this->DB 找不到 ...
上边明明实例化了啊($this->DB = new PDO() ;) ...