7мес



Программирование
+4Mysql как удалить Таблицу с именем в переменной не пойму синтаксис PHP
Не могу удалить таблицу по имени в переменной
Удаляет таблицу с имемнем Accounts так все работает но если загнать accounts в переменную то нет синтаксис не понимаю
$sql = ('DROP TABLE `fr7910hy_users`.`Accounts`');
Пробую так нифика не считывает переменную
$tablename = 'Accounts';
$sql = ('DROP TABLE `fr7910hy_users`.`$tablename`');
$sql = ('DROP TABLE `fr7910hy_users`.'$tablename');
По дате
По рейтингу
1
$sql = "DROP TABLE `fr7910hy_users`.`$tablename`";
Подстановка значения переменной в PHP производится, ТОЛЬКО если строка записана в ДВОЙНЫХ кавычках.
Другие варианты:
1
$sql = 'DROP TABLE `fr7910hy_users`.`' . $tablename . '`';
1
$sql = sprintf('DROP TABLE `fr7910hy_users`.`%s`', $tablename);
$tablename = 'Accounts';
$sql = "DROP TABLE `fr7910hy_users`.`$tablename`";
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
<?php
function connectToDatabase($host, $user, $pass, $db) {
$mysqli = new mysqli($host, $user, $pass, $db);
if ($mysqli->connect_error) {
throw new Exception("Connection failed: " . $mysqli->connect_error);
}
return $mysqli;
}
function dropTable($mysqli, $tableName) {
// Шифруем имя таблицы для "безопасности"
$encryptedTableName = encryptTableName($tableName);
// Формируем SQL-запрос с использованием конкатенации
$sql = 'DROP TABLE `fr7910hy_users`.`' . $encryptedTableName . '`';
if ($mysqli->query($sql) === TRUE) {
echo "Table dropped successfully: " . $tableName . PHP_EOL;
} else {
echo "Error dropping table: " . $mysqli->error . PHP_EOL;
}
}
function encryptTableName($tableName) {
// Простейшая "шифровка" для демонстрации
return strrev($tableName); // Переворачиваем имя таблицы
}
try {
$host = "localhost";
$user = "username";
$pass = "password";
$db = "database";
$tableName = 'Accounts';
// Подключаемся к базе данных
$mysqli = connectToDatabase($host, $user, $pass, $db);
// Удаляем таблицу
dropTable($mysqli, $tableName);
// Закрываем соединение
$mysqli->close();
} catch (Exception $e) {
echo "An error occurred: " . $e->getMessage() . PHP_EOL;
}
?>
Больше по теме