2017-01-25 7 views
0

Есть ли способ удалить столбцы не первичного ключа из конкретной таблицы с помощью подготовленного оператора?
Я попробовал этот
Как удалить столбец с помощью подготовленного оператора?

$conn = new mysqli($servername, $username, $password, $dbname); 

// Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

// prepare and bind 
    $stmt = $conn->prepare("ALTER TABLE staff DROP COLUMN :col_name"); 
    $stmt->bind_param(":col_name", $column_name); 

// set parameters and execute 
    $column_name = "job_type1"; 
    $stmt->execute(); 

Но получить эту ошибку:

Call to a member function bind_param() on boolean

+0

это означает, что '$ stmt' имеет значение' false', как это может быть? Ну, 'prepare()' не удалось. – Xorifelse

+0

Вы не можете использовать именованные параметры в mysqli. Вы смешиваете два API. – Mike

ответ

0

Как указано в документации:

mysqli_prepare() returns a statement object or FALSE if an error occurred.

НИХ, вы должны проверить, если возвращенное значение FALSE перед тем продолжается.

Возможно, это послужит причиной вашей ошибки.

Кроме того, вы можете увидеть, что фактическая ошибка по телефону:

$mysqli->error 

впоследствии.

+0

Но он зовет: новый mysqli. Итак, он использует mysqli, не так ли? –

+0

Упс. Ты прав. Именованные параметры меня отбросили. – Mike

 Смежные вопросы

  • Нет связанных вопросов^_^