Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
sdrus31
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 30
#1

Неполадки в SQLite

06.08.2011, 21:48. Просмотров 846. Ответов 6
Метки нет (Все метки)

Недавно столкнулся с проблемой работы с SQLite. Раньше никогда не работал. Ну и приключилась проблема: у меня есть исходный код, но почему-то он не выдает результат. Уже много чего перепробывал - результата нет. Может быть я ошибся?
PHP
1
2
3
4
5
6
$sqli=sqlite_open("test.sqlite");
sqlite_query($sqli,"CREATE TABLE test (num INTEGER DEFAULT '0')");
$ress=sqlite_query($sqli,"SELECT * FROM test");
$res=sqlite_fetch_array($ress);
echo $res;
echo $res['num'];
Вот этот отрезок кода не работает. Он никаких результатов не выдает. Пытался делать num INTEGER DEFAULT 0 (т.е. без кавычек) - ноль эмоций. В чем может быть дело? База сама создается, и вроде как таблица тоже успешно создалась, а вот результата нет.

Всем заранее спасибо за ответы!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.08.2011, 21:48
Ответы с готовыми решениями:

Неполадки с авторизацией
С подключением к БД нету проблем, в ней есть таблица users там столбцы...

неполадки с авторизацией в игре
всем добрый вечер! Говорю сразу, код не мой. Возникла проблема с авторизацией в...

Неполадки с вызовом процедур sql
При попытке вызвать несуществующую процедуру не выводится сообщение об ошибке....

Кодировка БД в SQLite
Всех с праздниками! Возник вопрос, нигде не могу найти решение. Как установить...

Безопасность бд sqlite
Здравствуйте, подскажите пожалуйста: 1. можно ли использовать бд sqlite для...

6
TBIKC
web dev
104 / 90 / 9
Регистрация: 23.09.2010
Сообщений: 737
06.08.2011, 22:23 #2
Я делал это так
PHP
1
2
3
4
5
    public function getAll(){
        
            $sql = "SELECT * FROM msgs ORDER BY id DESC";
            $res = $this->_db->arrayQuery($sql, SQLITE_ASSOC);
       }
Выше код он в классе находиться, ниже непосредственно сам вывод
PHP
1
2
3
4
5
6
7
8
9
10
11
12
$result = $gbook->getAll();
if(!is_array($res)){
    $errMsg = "Произошла ошибка при выводе записей";
}else{
    echo "<p>Всего записей в Гостевой книге: ".count($res)."</p>";
    foreach($res as $item){
        $id = $item['id'];
        $name = $item['name'];
        $email = $item['email'];
        $msg = nl2br($item['msg']);
        }
}
Вообщем, выведи это в foreach, да и кстате а что он должен вывести если ты как бы ничего не вносил в таблицу ?
1
sdrus31
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 30
06.08.2011, 23:57  [ТС] #3
он должен выводить число, записанное в num.
0
TBIKC
web dev
104 / 90 / 9
Регистрация: 23.09.2010
Сообщений: 737
07.08.2011, 00:02 #4
а зачем тебе это число?
повторяю, что он должен вывести если ты как бы ничего не вносил в таблицу ?
0
sdrus31
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 30
07.08.2011, 00:06  [ТС] #5
TBIKC, а как ты подключаешь базу? Ведь в твоем коде вроде как нет ссылки на переменную с подключением. Ну вообщем, можно поподробнее?


Добавлено через 1 минуту
TBIKC, посмотри внимательно. С самого начала он должен вывести 0, т.к. есть DEFAULT
0
TBIKC
web dev
104 / 90 / 9
Регистрация: 23.09.2010
Сообщений: 737
07.08.2011, 00:18 #6
ООП подход, с помощью конструктора

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class GbookDB {
    const DB_NAME = "gbook.db";
    private $_db;
    
    public function __construct(){
        try{
            if (!file_exists(self::DB_NAME)) {
                $this->_db = new SQLiteDatabase(self::DB_NAME);
                $sql = "CREATE TABLE msgs(
                            id INTEGER PRIMARY KEY,
                            name TEXT,
                            email TEXT,
                            msg TEXT,
                            datetime INTEGER,
                            ip TEXT)";
                $result = $this->_db->query($sql);
        }catch(SQLiteException $e){
            exit("<h1>Всё плохо!</h1>");
        }
    }
}
а потом просто вызываю

PHP
1
2
include "GbookDB.php";
$gbook = new GbookDB();
1
sdrus31
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 30
07.08.2011, 00:22  [ТС] #7
спасибо. будем разбираться
0
07.08.2011, 00:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.08.2011, 00:22

Ошибка SQLITE
Вот код. &lt;?php $db = new SQLite3('mysqlitedb.db'); $results =...

SQLite sqlite3_threadsafe()
Доброе время суток! Впал в ступор! Помогите! Пожалуйста! Сайт на хостинге....

не работает sqlite
Операцонка Ubuntu 12.04 Решил для своей простенькой задачки попробовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru