Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in

Может лучше для начала:
PHP:
<?php
$mysqli = mysqli_init();
if (!$mysqli) {
    die('mysqli_init failed');
}
else {
die('OK');
}
    ?>
ты про это? Для просмотра ссылки Войди или Зарегистрируйся
Documentation states that calling mysqli::__construct() without parameters (i.e. new mysqli()) should do the same as calling mysqli_init().
It does not, however, return a working mysqli object, but all the following calls to its methods only return Warning "Couldn't fetch mysqli".
Using mysqli_init() directly works as intended, but using it makes making derived mysqli classes much harder, if trying to use real_connect(),
because derived classes can only call their parent's constructor, not mysqli_init().

The following code is by design trying a connection and failing (with MySQL server not running) and gracefully admitting it with an error message
(warnings not tried to be silenced here).

Not working in PHP 5.2.8 either. No newer snapshots for Windows seem to be available.
 
  • Автор темы
  • Заблокирован
  • #22
Лог php пуст, база пустая и существует, да и пользователем пользуюсь root без пароля.

Таблички не создаются.

+5.00 Екатеренбург

а еще забыл добавить что использую Open Server
Может что то с Open Server? Хотя все что до этого на нем использовал все работало.

Решил проблему вот таким запросом
Код:
public function TableCityPortalEngine()
    {
        //Если БД существует, создаем таблицы
        if(!$sql = $this->connect) throw new Exception('Error: ' . $sql->mysqli_error());
        if(!$sql->query('set names utf8')) throw new Exception('Error: ' . $sql->mysqli_error());
        if(!$sql->query(" SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 ")) throw new Exception('Error: ' . $sql->mysqli_error());
        if(!$sql->query(" SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; ")) throw new Exception('Error: ' . $sql->mysqli_error());
        if(!$sql->query(" SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL' ")) throw new Exception('Error: ' . $sql->mysqli_error());
        if(!$sql->query(" CREATE SCHEMA IF NOT EXISTS" . DB_DATABASE .
            "DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ")) throw new Exception('Error: ' . $sql->mysqli_error());
 
        if(!$users = $sql->query("
            CREATE  TABLE IF NOT EXISTS " . DB_DATABASE . ".`users` (
            `idusers` INT NOT NULL AUTO_INCREMENT COMMENT 'id - Зарегистрированного' ,
            `login` VARCHAR(85) NOT NULL COMMENT 'Логин юзера, должен быть уникальный и состоять только из латинских букв и цифр , так же должен быть не более 20 символов' ,
            `email` VARCHAR(85) NOT NULL COMMENT 'На него приходит уведомление о регистрации, так же нужен для авторизации, должен быть уникальным и реально существующим. не более 25 символов' ,
            `password` VARCHAR(45) NOT NULL COMMENT 'Пароль пользователя, должен содержать не менее 7 символов и не более 20. Должен быть закодирован в мд5+соль. При потере, генерация нового пароля и перезаписывание старого' ,
            `role` TINYINT NOT NULL DEFAULT 0 COMMENT '(роль пользователя 0 - Просто гость, 1 - Авторированный юзер, 2 - Автор, 3 Админ)\nПо умалчанию после авторизации, записуется 1, дефолт = 0, первому юзеру, авторизированному при инсталяции  по умолчанию записывается 3 ' ,
            PRIMARY KEY (`idusers`) )
            ENGINE = InnoDB
            DEFAULT CHARACTER SET = utf8
            COLLATE = utf8_general_ci
            ")) throw new Exception('Error: ' . $sql->mysqli_error());
        if(!$articles = $sql->query("
            CREATE  TABLE IF NOT EXISTS " . DB_DATABASE . ".`articles` (
            `idarticles` INT NOT NULL AUTO_INCREMENT COMMENT 'id - Уникальный (для статей)' ,
            `title` VARCHAR(45) NOT NULL COMMENT 'Заголовок статьи' ,
            `description` VARCHAR(85) NOT NULL COMMENT 'Описание статьи' ,
            `keywords` VARCHAR(85) NOT NULL COMMENT 'Ключевые слова статьи' ,
            `text` TEXT NOT NULL COMMENT 'Текст статьи' ,
            `state` TINYINT NOT NULL COMMENT '0-черновик,1-опубликованна' ,
            `date_create` VARCHAR(45) NOT NULL COMMENT 'Дата создания' ,
            `date_edit` VARCHAR(45) NULL COMMENT 'Дата последнего изминения' ,
            `users_idusers` INT NOT NULL ,
            PRIMARY KEY (`idarticles`) ,
            INDEX `fk_articles_users1` (`users_idusers` ASC) ,
            CONSTRAINT `fk_articles_users1`
            FOREIGN KEY (`users_idusers` )
            REFERENCES " . DB_DATABASE . ".`users` (`idusers` )
            ON DELETE NO ACTION
            ON UPDATE NO ACTION)
            ENGINE = InnoDB
            DEFAULT CHARACTER SET = utf8
            COLLATE = utf8_general_ci
            ")) throw new Exception('Error: ' . $sql->mysqli_error());
 
        if(!$rols = $sql->query("
            CREATE  TABLE IF NOT EXISTS " . DB_DATABASE . ".`rols` (
            `idrols` INT NOT NULL AUTO_INCREMENT ,
            `roleid` INT NOT NULL COMMENT '(роль юзера 0,1,2,3) ' ,
            `textrole` VARCHAR(45) NOT NULL DEFAULT 'Гость' COMMENT 'В зависимости от роли пользователя: (0- Гость,1-Участник,2-Автор,3-Админ)' ,
            `users_idusers` INT NOT NULL ,
            PRIMARY KEY (`idrols`, `users_idusers`) ,
            INDEX `fk_rols_users` (`users_idusers` ASC) ,
            CONSTRAINT `fk_rols_users`
            FOREIGN KEY (`users_idusers` )
            REFERENCES " . DB_DATABASE . ".`users` (`idusers` )
            ON DELETE NO ACTION
            ON UPDATE NO ACTION)
            ENGINE = InnoDB
            DEFAULT CHARACTER SET = utf8
            COLLATE = utf8_general_ci
            ")) throw new Exception('Error: ' . $sql->mysqli_error());
 
        if(!$settings = $sql->query("
            CREATE  TABLE IF NOT EXISTS " . DB_DATABASE . ".`settings` (
            `idsettings` INT NOT NULL ,
            `access` TINYINT NOT NULL COMMENT '( 0 Запрещать, 1 разрешать, 2 запрещать гостям =>  просмотр раздела)' ,
            `offline` TINYINT NOT NULL DEFAULT 1 COMMENT 'Сайт (0 - закрыт, 1 -открыт)' ,
            `editor` TINYINT NOT NULL DEFAULT 1 COMMENT 'Добавление статей (0- без редактора, 1 - с редактором) ' ,
            `modules` TINYINT NOT NULL DEFAULT 1 COMMENT 'Модули (0 - не использовать, 1 использовать)' ,
            PRIMARY KEY (`idsettings`) )
            ENGINE = InnoDB
            DEFAULT CHARACTER SET = utf8
            COLLATE = utf8_general_ci
            ")) throw new Exception('Error: ' . $sql->mysqli_error());
 
        if(!$files = $sql->query("
            CREATE  TABLE IF NOT EXISTS " . DB_DATABASE . ".`files` (
            `idfiles` INT NOT NULL AUTO_INCREMENT ,
            `path` VARCHAR(45) NOT NULL COMMENT 'Путь к файлу' ,
            `extension` VARCHAR(45) NULL COMMENT 'Расширение файла, например .gif или .jpg' ,
            `type` VARCHAR(45) NOT NULL COMMENT 'mime тип файла, например image/gif или text/html' ,
            `users_idusers` INT NOT NULL ,
            PRIMARY KEY (`idfiles`) ,
            INDEX `fk_files_users1` (`users_idusers` ASC) ,
            CONSTRAINT `fk_files_users1`
            FOREIGN KEY (`users_idusers` )
            REFERENCES " . DB_DATABASE . ".`users` (`idusers` )
            ON DELETE NO ACTION
            ON UPDATE NO ACTION)
            ENGINE = InnoDB
            DEFAULT CHARACTER SET = utf8
            COLLATE = utf8_general_ci
            ")) throw new Exception('Error: ' . $sql->mysqli_error());
 
 
        if(!$widgets = $sql->query("
            CREATE  TABLE IF NOT EXISTS " . DB_DATABASE . ".`widgets` (
            `idwidgets` INT NOT NULL AUTO_INCREMENT ,
            `name` VARCHAR(55) NOT NULL COMMENT 'Имя модуля' ,
            `head` VARCHAR(255) NOT NULL COMMENT 'Заголовок модуля' ,
            `template` VARCHAR(105) NOT NULL COMMENT '(имя шаблона или путь к нему) пример admin_autorization.php' ,
            PRIMARY KEY (`idwidgets`) )
            ENGINE = InnoDB
            DEFAULT CHARACTER SET = utf8
            COLLATE = utf8_general_ci
            ")) throw new Exception('Error: ' . $sql->mysqli_error());
 
 
        if(!$errors = $sql->query("
            CREATE  TABLE IF NOT EXISTS " . DB_DATABASE . ".`errors` (
            `iderrors` INT NOT NULL AUTO_INCREMENT ,
            `module` VARCHAR(45) NOT NULL COMMENT 'Модуль(виджет) в котором произошла ошибка' ,
            `message` TEXT NOT NULL COMMENT 'Текст ошибки сообщения' ,
            PRIMARY KEY (`iderrors`) )
            ENGINE = InnoDB
            DEFAULT CHARACTER SET = utf8
            COLLATE = utf8_general_ci
            ")) throw new Exception('Error: ' . $sql->mysqli_error());
 
        if(!$sql->query(" SET SQL_MODE=@OLD_SQL_MODE ")) throw new Exception('Error: ' . $sql->mysqli_error());
        if(!$sql->query(" SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS ")) throw new Exception('Error: ' . $sql->mysqli_error());
        if(!$sql->query(" SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS ")) throw new Exception('Error: ' . $sql->mysqli_error());
 
        if (!$users)
            return false;
        if (!$articles)
            return false;
        if (!$rols)
            return false;
        if (!$settings)
            return false;
        if (!$files)
            return false;
        if (!$widgets)
            return false;
        if (!$errors)
            return false;
 
        return true;
    }
 
__________________
 
Назад
Сверху