Создать пользователя с подготовленным заявлением MySQLi

У меня есть сценарий с использованием PHP и MySQLi с подготовленными операторами. Цель состоит в том, чтобы создать нового пользователя на сервере MySQL, однако подготовка заявления не выполняется, и никакой дополнительной информации о том, почему.

$query = 'CREATE USER ?@`10.1.1.%` IDENTIFIED BY ?;'; if ($stmt = $newdb->prepare($query)) { $stmt->bind_param('ss', $db_username, $db_password); if ($stmt->execute()) { // Database user created successfully } else { die(errorJSON('db', 'create', 22)); } $stmt->close(); } else { die(errorJSON('db', 'create', 3)); } 

Любые идеи, почему это утверждение не справляется?

Спасибо.

Вы должны печатать $stmt->error (и необязательно $stmt->errno ) при проверке успеха / сбоя ваших запросов. Например:

 if ($stmt->execute()) { // Database user created successfully } else { errorJSON('db', 'create', 22) die($stmt->error); } 

Вышеприведенный пример – неплохой пример – скорее всего, я испортил логику вашей отчетности об ошибках, но именно так вы получите ошибку и распечатаете / запишите ее.