2015-11-30 2 views
-1

Я работаю над страницей входа для скрипта, который должен запрашивать базу данных MySQL. Он будет расположен примерно на domain.com/e.php, а domain.com - это уже существующий и профессиональный скрипт, который использует соединение с базой данных (я не уверен, как это делается, но я ввожу имя dbname, user, password, hostname в качестве переменных в конфиге файл в чем-то вроде domain.com/admin/config.php сценария).Как запросить базу данных mysql в существующем скрипте?

У меня есть такой код, который работает:

<?php 
$param=$_GET['m']; 
$param=str_replace("-", " ", $param); 
$param=ucwords($param); 
echo $param; 
?> 

Это будет принимать domain.com/e.php?m=sunny-leone и распечатать «Солнечный Леоне» на e.php странице, которая является то, что нужно.

мне теперь нужно выполнить следующий запрос на базу данных MySQL:

SELECT column_name FROM table_name WHERE another_column_name='$param'

С этим мне интересно, если мне нужно подключиться к базе данных из этого конкретного файла, или у меня уже есть этот соединение на месте (используя вышеупомянутый скрипт)?

Кроме того, я не уверен, что кто-то может это сделать, но как я могу заставить это работать? Я хочу выполнить вышеуказанный запрос и сохранить его в переменной, например $ query, поэтому я могу использовать ее в других частях скрипта.

В принципе, мне нужно добавить что-то вроде этого, а затем выполнить запрос или не обязательно (просто выполните запрос без подключения?)?

$servername = "localhost"; 
$username = "user_name"; 
password = "password_here"; 
$dbname = "db_name_here"; 

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

if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
+0

Вы можете включить/потребовать файл config.php и использовать там соединение. Но если соединение с базой данных не доступно в другом месте для вашего скрипта, вам действительно нужно подключиться, прежде чем вы сможете выполнить запрос. – Epodax

+0

см. Этот учебник: http://www.sanwebe.com/2013/03/basic-php-mysqli-usage –

+0

Хорошо. Таким образом, в основном, если человек нажимает на такие ссылки и переходит в домен.com/e.php, это не имеет никакого отношения к остальной части сценария, и соединение с данными необходимо делать в каждом отдельном файле, как это? Я могу найти большую часть информации для работы над этим в Сети, но я не уверен в этой части, и я хочу сделать лучший и самый минимальный код (например, включить whats в config.php, было бы хорошо). –

ответ

0

Шаг 1: Узнайте, использует ли существующая система какие-либо общие пакеты CMS или Framework. Если это CMS, например Wordpress, Joomla или Drupal, вам, вероятно, лучше всего сделать это как страницу CMS. Если он использует Framework, например Laravel, Symphony или Zend, тогда вам, скорее всего, захочется использовать MVC Framework и написать класс контроллера (по крайней мере). В любом случае, вы будете использовать существующую платформу для уменьшения количества ненужного кода, который вы должны написать, то есть вам не нужно будет подключаться к БД, и вы сможете использовать объектные модели базы данных платформы , системы шаблонов и т. д., и повторно использовать макет страницы с остальной части сайта с очень небольшой работой.

Если вы спуститесь по этому маршруту, окончательное решение будет сильно отличаться в зависимости от того, на какой платформе написана система; вам нужно будет получить дополнительные советы, как только вы узнаете больше о системе (я предлагаю начать новый вопрос SO в этот момент, если вам нужна дополнительная помощь).

В случае, если вы решили не делать этого и просто написать простую необработанную страницу PHP без ссылки на исходную платформу, то да, ваш базовый образец кода является хорошей отправной точкой. Да, вам нужно будет подключиться к БД для себя, и если вам нужно делать что-то вроде вывода страницы с использованием стандартной темы сайта, тогда вам нужно будет повторно реализовать это с нуля.

Вы не затронули вопрос о том, как выглядит ваш фактический код запроса, но вы также должны остерегаться таких проблем безопасности, как SQL-инъекция, используя переменные $_GET непосредственно в запросе (или даже просто выводя их назад к пользователю, как в вашем примере).

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