Показать сообщение отдельно
Старый 25.04.2013, 16:21   #1
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Не вставляются данные в MySQL

Сорри, если нечто простое.
Есть такое:
<?php
//Это просто статика для упрощения доступа к базе
class DataBase {
   const host = "localhost";
   const user = "***";
   const password = "***";
   const db = "***";
   private static $instance;

   private function __construct() {}
   private function __clone(){}

   public static function call(){
      if(!isset(self::$instance)){
         self::$instance = new MySQLi(self::host, self::user, self::password, self::db);
         if(self::$instance->connect_error){
            throw new Exception('Error MySQL: ' . self::$instance->connect_error);
         }
      }
      return self::$instance;
   }
}
?>
class User
{
   public function User()
   {
...
      $this->insert($this->id, $this->name);
   }
...
   public static function insert($id, $name)
   {
      $query = "INSERT INTO `user`  (`id` , `name`) VALUES ($id, `$name`)";
      DataBase::call()->query($query);
   }
...
}
Вызывается этот скрипт.
<?php
require_once('DataBase.php');
require_once('user.php');
...
   if($my_user == null)
   {
      $my_user = new User($user_id, $user_name);
...
В нем запрашивается пользователь. Если нет - создается новый. При создании нового пользователя должна быть вставка в таблицу мускула. Функция insert вызывается (проверил Xdebug-ом). Однако ничего не вставляется.
В таблице не только два поля id и имя. Там масса полей. Но при создании нового пользователя нужно все остальные по дефолту.
Есть два предположения -неверно составлен запрос (я в них почти ни бум бум). Или другое. Там есть три поля - блобы. У которых не дает установить дефолтные значения. Может оттого, что у них нет дефолтных значений строка в таблицу не вставляется.
Подскажите, плиз, - что делаю неверно.
Спасибо.
(Offline)
 
Ответить с цитированием