2016-11-02 1 views
-1

Я просто изучаю классы, я пытаюсь добавить данные с помощью параметров mysql bind, но не могу это сделать, кажется, какая-то глупая ошибка, пожалуйста, помогите мне с, я хочу делайте это с oops способом, иначе я могу это сделать.Mysql Bind insert with classes: невозможно вставить с oops

Ошибка: Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный '$ Mysqli' (T_VARIABLE), ожидая функции (T_FUNCTION) в customer.php на линии 4

Index.php

$adduser= new Userclass(); 
echo $adduser->addcutomer(); 

Db class.php

class db extends mysqli { 
    private static $instance = null; 
    private $user = "root"; 
    private $pass = "xxx"; 
    private $dbName = "xxx"; 
    private $dbHost = "localhost"; 

    public static function getInstance() { 
    if (!self::$instance instanceof self) { 
      self::$instance = new self; 
    } 
     return self::$instance; 
    } 
    public function __clone() { 
     trigger_error('Clone is not allowed.', E_USER_ERROR); 
    } 
    public function __wakeup() { 
     trigger_error('Deserializing is not allowed.', E_USER_ERROR); 
    } 

    private function __construct() { 
     parent::__construct($this->dbHost, $this->user, $this->pass, $this->dbName); 
     if (mysqli_connect_error()) { 
      exit('Connect Error (' . mysqli_connect_errno() . ') ' 
        . mysqli_connect_error()); 
     } 
     parent::set_charset('utf-8'); 
    } 

    public function dbquery($query) 
    { 
     if($this->query($query)) 
     { 
      return true; 
     } 

    } 
} 

клиентов класса

class Userclass extends db{ 
    $mysqli=db::getInstance(); 

    public function addcutomer(){ 

    $query = $mysqli->prepare("INSERT INTO `user` (`firstname`,`lastname`) VALUES (?, ?)"); 
    $col1 = 'abc'; 
    $col2 = 'def'; 
    $query->bind_param('ss', $col1, $col2); 
    $query->execute(); 
    $query->close(); 
    return true; 
    } 
+0

проход $ col1 = абв; $ col2 = def; это в строке, как $ col1 = 'abc'; $ col2 = 'def'; –

+0

Вам нужно проверить руководство по настройке и доступу к свойствам объекта. Также обратите внимание, что очень маловероятно, что вы хотите, чтобы все ваши классы расширяли 'mysqli'. Вместо этого вы должны взглянуть на инъекцию зависимостей. – jeroen

+0

@jeroen, пожалуйста, помогите мне с приведенным выше кодом, кажется, что некоторые настройки необходимы в db.php или customerclass.php – gaurav

ответ

-1

Попробуйте это, надеюсь, что эта работа

$col1 = "abc"; 
$col2 = "def"; 
+0

обновите мой вопрос, пожалуйста, помогите мне исправить его. – gaurav

+0

вы получаете какую-либо ошибку? –