Mysqli вместо SQLite

Pokrowsky

Новичок
Привет Всем! Начал изучать ООП. Нашел хорошие видео-уроки от Станислава Бойко. Объясняет понятно и доходчиво. Дошел до урока, где он собирает чат на ооп, но в уроке использует SQLite. С SQLite-ом никогда не пользовался, всегда тока Mysqli, да и наш сервер админ разрешает писать тока Mysqli или Mysql, но в PHP7 Mysql нету, поэтому перешел на Mysqli. По уроку написал файл по установке чата. В файле идет проверка на существования базы и создание таблиц в базе. Помогите переписать на Mysqli. Сам пробовал не выходит...........ошибки.....ошибки и еще много ошибок. Ну очень хочется перейти на ооп. В книги пока не лезу, сначала видео, потом книжки.

Вот ссылка на сам код: http://pastebin.com/Wxj4gDJP.
 

Фанат

oncle terrible
Команда форума
Здесь не пишут за тебя код.
Здесь могут помочь с конкретным вопросом.

Чтобы переписать на mysqli, надо сначала выучить, как работать с mysqli.
Вот и займись этим.
 

Pokrowsky

Новичок
Здесь не пишут за тебя код.
Здесь могут помочь с конкретным вопросом.

Чтобы переписать на mysqli, надо сначала выучить, как работать с mysqli.
Вот и займись этим.
На mysqli я пишу, но тока в процедурном пчп. А есть тогда какие нибудь варианты как мне самому это переписать на mysqli. В коде тока надо помочь мне с верхушкой, до создавания самих таблиц.
 

Фанат

oncle terrible
Команда форума
И, кстати.
У меня для тебя плохие новости.
Если ты думаешь, что "выучив ООП" ты дальше будешь с легкостью фокусника клепать код, который всегда будет работать, то ты заблуждаешься.
На самом деле ситуация, когда "не выходит...........ошибки.....ошибки и еще много ошибок" будет постоянно. Это нормальный рабочий процесс для программиста. На всю жизнь.
И если вместо того чтобы разбираться с ошибками и исправлять их одну за одной, ты будешь все время бегать к мамочке, чтобы она все написала за тебя, то задай себе простой вопрос - а ты-то ей зачем?
 

Pokrowsky

Новичок
И, кстати.
У меня для тебя плохие новости.
Если ты думаешь, что "выучив ООП" ты дальше будешь с легкостью фокусника клепать код, который всегда будет работать, то ты заблуждаешься.
На самом деле ситуация, когда "не выходит...........ошибки.....ошибки и еще много ошибок" будет постоянно. Это нормальный рабочий процесс для программиста. На всю жизнь.
И если вместо того чтобы разбираться с ошибками и исправлять их одну за одной, ты будешь все время бегать к мамочке, чтобы она все написала за тебя, то задай себе простой вопрос - а ты-то ей зачем?
Ладно, я понял, но если сам попробую переписать код, и возникнут ошибки или вопросы, поможете. Ну, то что ошибки будут вылазить всегда, это само собой, они у меня и в процедурке лезут со всех сторон. Но в процедурке то хотя бы знаю куда копать и как исправить. А тут вообще все новое.
 

Фанат

oncle terrible
Команда форума
когда твой код выдает ошибки - это самое простое. ошибку можно погуглить и узнать что она означает
Вот когда код не работает и не выдает никаких ошибок - это куда хуже
 

Pokrowsky

Новичок
Тогда, если что буду писать сюда, чтобы не плодить темы. Вы мне помогали и в других вопросах, также рассчитываю на дальнейшую помощь
 

Pokrowsky

Новичок
Вот переписал код http://pastebin.com/Wxj4gDJP. Тока обьясните мне пожалуйста, что вот эта строчка

PHP:
$chat_users = $connect->query($sql_users);
как будет обрабатывать запрос в базу, если в переменной $connect нету базы.
Вот тут не могу понять что к чему
 

Фанат

oncle terrible
Команда форума
если в переменной $connect нету базы, то обрабатывать запрос в базу никак не будет
 

Pokrowsky

Новичок
если в переменной $connect нету базы, то обрабатывать запрос в базу никак не будет
Вот тут
PHP:
if (!mysqli_select_db($connect,$db))
            {
                try
                {
                    $this->_db = $connect->query("CREATE DATABASE chat");
если нету такой базы, то она создается. Дальше идут уже создание таблиц

PHP:
$sql_users = "CREATE TABLE users(
                                id INTEGER PRIMARY KEY,
                                login TEXT,
                                name TEXT,
                                password TEXT,
                                access INTEGER,
                                age INTEGER,
                                gender TEXT,
                                date TEXT )";
                    
                    $sql_messages = "CREATE TABLE message(
                                    id INTEGER PRIMARY KEY,
                                    messages TEXT,
                                    date TEXT)";
                    
                    $chat_users = $connect->query($sql_users);
                    $chat_messages = $connect->query($sql_messages);
Вот как мне $connect связать с базой. На процедурке была функция

PHP:
function db()
    {
    
        $host = "localhost";
        $user = "stas";
        $pswd = "1";
        $db = "*****";
        
        $connect = mysqli_connect($host, $user, $pswd);
        mysqli_set_charset($connect,"utf8");
        if (!$connect || !mysqli_select_db($connect,$db))
        {
            echo mysqli_error($connect);
        }
    
        return $connect;
    }
Я ее использовал в запросах и все окей, а тут-то в ООП как это все написать
 

Фанат

oncle terrible
Команда форума
Не льсти себе, нету у тебя никакого ооп.
писать точно так же
 

Фанат

oncle terrible
Команда форума
Сам по себе код какой-то бредовый.
Судя по всему тебе надо что-то вроде
PHP:
           if (!mysqli_select_db($connect,"chat"))
           {
               $connect->query("CREATE DATABASE chat");
               mysqli_select_db($connect,"chat")
               $sql_users = "CREATE TABLE users(";
                  
               $sql_messages = "CREATE TABLE message(";
                  
               $chat_users = $connect->query($sql_users);
               $chat_messages = $connect->query($sql_messages);
            }
            else
            {
                die("Chat have installed. Please delete directory install");
            }
 

Pokrowsky

Новичок
Сам по себе код какой-то бредовый.
Судя по всему тебе надо что-то вроде
То, что он бредовый это я сам понимаю, изучая новое взялся за сложное. Но в принципе да, то что вы написали есть то что мне нужно. Я так понял вы вместо исключении использовали обычные if else.
 

Фанат

oncle terrible
Команда форума
чтобы использовать исключения, надо а) понимать что это такое и б) убедиться, что код их бросает
 

Pokrowsky

Новичок
чтобы использовать исключения, надо а) понимать что это такое и б) убедиться, что код их бросает
Надо будет налечь крепко на изучение исключений, пока тогда буду использовать знакомые if else.

То что вы написали, это понял, старые добрые конструкций. Но как теперь загнать базу в $connect, после того как она создалась. Как-то их надо приклеить друг к другу.
 

Pokrowsky

Новичок
Ах, да вот такая ошибка часто вылазит Call to a member function query() on a non-object. Перевод понимаю, query вызывается на не объекте. Почему то она вылазит вот на такие запросы

PHP:
$connect->query("SHOW DATABASE LIKE %chat% ");
Что в этих запросах не так. Переписываю вот так

PHP:
mysqli_query($connect,"SHOW DATABASE LIKE %chat% ");
но в $connect то базы нет и снова "Привет Ошибка", ожидает один параметр.

Это вообще кажется одна и та же ошибка, то в разных формах.
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок
Ну и что? Ты и о PHP когда-то не знал, потом сел и стал учить.
 
Сверху