Итак, я от пользователя получаю название таблицы, из которой он хочет получить данные, и я должен проверить наличие этой таблицы. Как я понял, надо использовать SHOW TABLES LIKE 'table_name'
, но какой его синтаксис в php
?
<?php
$mysqli = new mysqli('localhost', 'admin', '', 'root');
$mysqli->query('SET NAMES "utf8"');
$tables = $mysqli->query('SHOW TABLES LIKE `pages`');
$mysqli->close();
echo $tables;
require_once 'header.php';
require_once 'body.php';
?>
Создал такую страничку для теста этой функции, но ничего не выводится, что я сделал не так?
SHOW TABLES LIKE
- после этого должно идти строковое значение, Вы же пишете значение, ограниченное обратными кавычками.Как минимум, не нужно напрямую вставлять в запрос... ничего, вообще ничего, для этого есть подготовленные выражения:
$mysqli = new mysqli('localhost', 'admin', '', 'root');
$mysqli->query('SET NAMES "utf8"');
$sql = "SHOW TABLES LIKE ?";
$stmt = $mysqli->prepare($sql);
$stmt->bindParam('s',$table_name);
$stmt->execute();
$tables = $stmt->execute();
echo $tables[0][0];
require_once 'header.php';
require_once 'body.php';
Ну и, наконец, как правильно сказали в комментариях - в принципе нехорошо, когда пользователь может получить данные из какой хочет таблицы просто по названию. Заведите массив, например, в котором будут перечислены названия таблиц, которые можно запрашивать - и сверяйте с ним. Можете сделать функцию для этого, завести класс - как угодно. Хоть в базе хранить (да, вот так вот, в базе хранить названия таблиц базы, которые пользователь может запрашивать).
А что у вас в файле header.php
? Скорее всего начало вашего html
документа? Если так - то результат вашего запроса банально не попадает в ваш html
документ. Попробуйте сделать так:
<?php
require_once 'header.php';
$mysqli = new mysqli('localhost', 'admin', '', 'root');
$mysqli->query('SET NAMES "utf8"');
$tables = $mysqli->query('SHOW TABLES LIKE `pages`');
$mysqli->close();
echo $tables;
require_once 'body.php';
?>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть шаблон MVC на с которым я разобрался и могу делать простенькие задачки используя MVCНо проблема в роутере, он так прописан, что не запускается...
Выдает ошибку: Parse error: syntax error, unexpected ')' in /home/user167/devildropru/html/epicdrop/connector
Допустим есть кнопка на странице, как сделать так чтобы при нажатие она подключалось к базе данныхт