Не добавляется запись в таблицу SQlite, ПОМОГИТЕ пжл!

Hrupin

Новичок
PHP только изучаю и только познакомился с SQlite!

База создается и таблица, а добавить запись никак не получается!

PHP:
spl_autoload_register(function ($class) {
            include_once  $class .'.php';
});
class BaseData extends SQLite3 {
    const DB_NAME = 'gbook.db';
    public $_db;
    public $_RezultTakeAll;
    public $_sql;
    function __construct() {
        if (file_exists(self::DB_NAME)) {
            $this->_db = new PDO('sqlite:../'.self::DB_NAME.'');
        } else {
            $this->_db = new PDO('sqlite:../'.self::DB_NAME.'');
            $this->_sql = "CREATE TABLE msg (
                                       id INTEGER PRIMARY KEY,
                                       name TEXT,
                                       email TEXT,
                                       msg TEXT,
                                       datetime INTEGER,
                                       ip TEXT
                                      )";
            $this->_db->exec($this->_sql);            
        }
        return $this->_db;
    }


    function SavePost($_name, $_email, $_msg) {
        $name = new FiltrData($_name);
        echo $name->_RezultFiltr.'<br />';
        $msg = new FiltrData($_msg, 'NaturalNumber');
        echo $msg->_RezultFiltr.'<br />';
        $email = new FiltrData($_email, 'email');
        echo $email->_RezultFiltr.'<br />';
        $_date = time();
        $_ip = $_SERVER['REMOTE_ADDR'];
        $this->_sql = "INSERT INTO msg (name, email, msg, datetime, ip) VALUES ($name->_RezultFiltr, $email->_RezultFiltr, $msg->_RezultFiltr, $_date, $_ip)";
        echo $this->_sql; //выводит// INSERT INTO msg (name, email, msg, datetime, ip) VALUES (vasya, [email protected], 40, 1347815759, 127.0.0.1)
        $this->_db->exec($this->_sql);      
    }


}

$s = new BaseData();
$s->SavePost('name','email','msg');
 

Placido

Наблюдаю
SQLite здесь ни при чем. Проблема в запросе. В VALUES() все строковые данные необходимо заключать в апострофы:
PHP:
$this->_sql = "INSERT INTO msg (name, email, msg, datetime, ip) 
               VALUES ('$name->_RezultFiltr', '$email->_RezultFiltr', '$msg->_RezultFiltr', '$_date', '$_ip')";
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Строковые значения принято брать в одинарные кавычки в запросах.
 

Hrupin

Новичок
Спасибо большое! Заработало! Многому мне еще учиться...
 
Сверху