MySQL — фатальная ошибка: вызов функции-члена bind_param () для необъекта

Я просмотрел десятки вопросов с почти одинаковым названием этого поста, но мне так и не удалось найти ответ на мою конкретную проблему. Я пытаюсь подготовить заявление, но каждый раз получаю эту ошибку. Я думаю, что в моем синтаксисе sql должна быть какая-то ошибка, но я не могу ее найти.

$title = "this_is_my_table_title";

//import the database login credential variables
require("localhost_credentials.php");

$conn = new mysqli($db_servername, $db_username, $db_password, $db_name);
if($conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
}

$querystr  = "CREATE TABLE ? (";
$querystr .= "id int(11) not null auto_increment,";
$querystr .= "section varchar(255) not null,";
$querystr .= "raw_content LONGTEXT not null,";
$querystr .= "formatted_content LONGTEXT not null,";
$querystr .= "primary key (id)";
$querystr .= ");";


$statement = $conn->prepare($querystr);  <--- error here
$statement->bind_param("s", $title);
$statement->execute();
$statement->close();

1

Решение

Вы не можете использовать заполнитель для имени таблицы, его можно использовать только вместо выражений. Так CREATE TABLE ? не является действительным. Использование:

$querystr  = "CREATE TABLE `$title` (";

после подтверждения этого $title приемлемое имя таблицы

2

Другие решения

Других решений пока нет …