Top.Mail.Ru
Ответы
Аватар пользователя
7мес
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Mysql как удалить Таблицу с именем в переменной не пойму синтаксис PHP

Не могу удалить таблицу по имени в переменной

Удаляет таблицу с имемнем Accounts так все работает но если загнать accounts в переменную то нет синтаксис не понимаю


$sql = ('DROP TABLE `fr7910hy_users`.`Accounts`');

Пробую так нифика не считывает переменную

$tablename = 'Accounts';

$sql = ('DROP TABLE `fr7910hy_users`.`$tablename`');

$sql = ('DROP TABLE `fr7910hy_users`.'$tablename');

По дате
По рейтингу
Аватар пользователя
Новичок
7мес
1
 $sql = "DROP TABLE `fr7910hy_users`.`$tablename`"; 

Подстановка значения переменной в PHP производится, ТОЛЬКО если строка записана в ДВОЙНЫХ кавычках.

Другие варианты:

1
 $sql = 'DROP TABLE `fr7910hy_users`.`' . $tablename . '`'; 
1
 $sql = sprintf('DROP TABLE `fr7910hy_users`.`%s`', $tablename); 
Аватар пользователя
Профи
7мес

$tablename = 'Accounts';
$sql = "DROP TABLE `fr7910hy_users`.`$tablename`";

Аватар пользователя
Просветленный
7мес
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; 
} 
 
?>