Call to a member function bind_param() on boolean in

335
20 апреля 2017, 18:34

Собственно при использовании функции storeUser выходит данная ошибка:

Call to a member function bind_param() on boolean in...

Вот сама функция, ошибка происходит в строке с $stmt->bind_param, я указал в коде

public function storeUser($user_login, $user_password, $user_name, $user_middle_name, $user_last_name, $user_group) {
        $uuid = uniqid('', true);
        $hash = $this->hashSSHA($user_password);
        $user_encrypted_pass = $hash["user_encrypted_pass"]; // encrypted password
        $user_salt = $hash["user_salt"]; // salt
        $stmt = $this->conn->prepare("INSERT INTO users_table(user_uniqueid, user_login, user_encrypted_pass, user_salt, user_name, user_middle_name, user_last_name, user_group, user_created) VALUES(?, ?, ?, ?, ?, ?, ?, ?, NOW())");
 Ошибка здесь-> $stmt->bind_param("ssssssss", $uuid, $user_login, $user_encrypted_pass, $user_salt, $user_name, $user_middle_name, $user_last_name, $user_group);
        $result = $stmt->execute();
        $stmt->close();
        // check for successful store
        if ($result) {
            $stmt = $this->conn->prepare("SELECT * FROM users_table WHERE user_login = ?");
            $stmt->bind_param("s", $user_login);
            $stmt->execute();
            $user = $stmt->get_result()->fetch_assoc();
            $stmt->close();
            return $user_login;
        } else {
            return false;
        }
    }
Answer 1

mysqli::prepare возвращает false в случае если не удалось подготовить запрос. Это может происходить если в запросе неверно указана таблица, или поле таблицы, или в запросе используется неверный синтаксис.

Проверить что произошла ошибка и узнать в чем причина можно просмотрев содержимое $this->conn->error и $this->conn->errno так:

$stmt = $this->conn->prepare("INSERT INTO users_table(user_uniqueid, user_login, user_encrypted_pass, user_salt, user_name, user_middle_name, user_last_name, user_group, user_created) VALUES(?, ?, ?, ?, ?, ?, ?, ?, NOW())");
if( ! $stmt ){ //если ошибка - убиваем процесс и выводим сообщение об ошибке.
    die( "SQL Error: {$this->conn->errno} - {$this->conn->error}" );
}
$stmt->bind_param("ssssssss", $uuid, $user_login, $user_encrypted_pass, $user_salt, $user_name, $user_middle_name, $user_last_name, $user_group);
READ ALSO
Как найти степень из операции bcpowmod?

Как найти степень из операции bcpowmod?

Как из данного PHP-скрипта найти x? $mod = "24358801334247076632661771105738015915";

203
данные из mysql в excel, php-excel

данные из mysql в excel, php-excel

Нужны данные из БД в MS Excel

302
Вывод данных из MySQ. Категории

Вывод данных из MySQ. Категории

Нуждаюсь в помощиНе могу найти информации

198
Warning: Illegal string offset в PHP (При использовании Android Studio)

Warning: Illegal string offset в PHP (При использовании Android Studio)

При попытке регистрации происходит следующая ошибка:

352