Не выполняется запрос

Oleksii

Новичок
PHP:
<?php
class dataBase
{
    const HOST = "localhost";
    const USER = "root";
    const PASS = "";
    const BASE = "test_db";

    public function dbConnect()
    {
        $connect = new mysqli(self::HOST, self::USER, self::pASS, self::BASE);
        if(!$connect->connect_error)
        {
            return $connect;
        }
        else exit ("Wrong connection");
    }
    public function query($query)
    {
        $sql = $this->dbConnect()->query($query);
    }
}
$db = new dataBase();
$result = $db->query("CREATE TABLE IF NOT EXIST table(user varchar(20), pass varchar(20))");
if(!$result) die("error");
?>
Соединение устанавливается, а запрос не выполняется.
 
Последнее редактирование:

Oleksii

Новичок
PHP:
<?php
    class dataBase {
        private $db;
        public static $mysqli = null;
        const HOST = "localhost";
        const USER = "root";
        const PASSWORD = "";
        const BASE = "test_db";
        private function __construct() {
            $connect = new mysqli(self::HOST, self::USER, self::PASSWORD, self::BASE);
            if(!$connect->connect_error) {
                $this->_db = $connect;
                return $this->_db;
            }
            else {
                exit("Нет соединения с базой данных");
            }
        }
        public static function exemp() {
            if(self::$mysqli == null) {
                $exemp = new dataBase();
                self::$mysqli = $exemp;
            }
            return self::$mysqli;
        }
        public function query($query) {
            return $this->_db->query($query);
        }
    }
$db = dataBase::exemp();
$result = $db->query("CREATE TABLE IF NOT EXIST(user varchar(20), pass varchar(20))");
if(!$result) die("Error");
?>
Вот еще так пытался, ошибка та же.
 

AnrDaemon

Продвинутый новичок
Сотри это и никогда так не делай.
Плюс, никогда, вообще никогда не используй пользователя с правами SUPER для работы приложения, если только это не приложение для управления SQL сервером.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Об ошибке мы видимо должны догадаться? Особенно в виду того, что ты пропустил S в слове EXISTS

PS: Да и далее у тебя там дикий бред написан. Иди ман читай.
 

Фанат

oncle terrible
Команда форума
@Oleksii, я бы порекомендовал не писать пока своих классов, а использовать $mysqli напрямую.

А чтобы ошибку запроса было видно, добавь перед соединением

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
 

Oleksii

Новичок
В каком из двух классов бред? Ошибка не в запросе, а ерор, результат выполнения иф в обоих случаях.
 

HORO

Новичок
смотреть надо ошибки в $this->_db->error
А вместо такого класса лучше сделать вот такую функцию
PHP:
/**
* @return mysqli
*/
function getConnection(){
    static $conn;
    if(!$conn) {
        $conn=new mysqli(DB_HOST,DB_USER,DB_USER_PASS,DB_NAME);
        $conn->set_charset(DB_DEFAULT_CHARSET);
    }
    return $conn;
}
 

AnrDaemon

Продвинутый новичок
Не проще уже взять PDO?…
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
PDO его не спасет в данном случае
 

AnrDaemon

Продвинутый новичок
Can't a man dream? >.<
Спасти может и не спасёт, но заставит переписать это… это… это.
А там, глядишь, и грабли найдутся.
 
Сверху