Я искал и нашел других с похожими проблемами, но в большинстве случаев они просто не использовали ключевое слово «global» до вызова соединения с БД. По сути, я пытаюсь запустить функцию, которая усекает таблицу на основе того, что передается в функцию.
В recipes.php
truncate_table('bl_recipes');
И в functions.php
// Truncate table passed in function
function truncate_table($table) {
global $con;
$truncate_query = '"TRUNCATE TABLE ' . $table . '"';
$truncate = mysqli_query($con, $truncate_query);
if ($truncate) {
echo 'Table truncated.';
}
else {
echo 'Table not truncated.';
echo 'The query was ' . $truncate_query;
}
}
Если я отображаю $ truncate, я получаю TRUNCATE TABLE ‘bl_recipes’; это именно то, что я получаю, если я обрезаю вручную из PHPMyAdmin. Детали в $ con верны, так как другие запросы работают, хотя ни один из них не был в файле functions.php. Само соединение с базой данных в настоящее время определено в functions.php, которое я могу переместить позже, но сейчас, во время разработки, я не думаю, где оно находится. Пользователь имеет все привилегии БД. Результат при загрузке страницы: «Таблица не обрезана».
Кто-нибудь знает, что я делаю не так?
Ура,
Lee.
Использовать этот
$truncate_query = 'TRUNCATE TABLE `' . $table .'`';
или это
$truncate_query = "TRUNCATE TABLE `$table`";
Других решений пока нет …