Начинающий PHP / MySQL - подключение к базе данных - PullRequest
0 голосов
/ 17 сентября 2018

Извините за тупой вопрос, так как я новичок в php.Я использую файл php, хранящийся на моем хосте, для подключения к базе данных, хранящейся на том же хосте, это работает нормально.

Я использую нижеприведенное для подключения к базе данных (пример подключения)

<?php
$db = new PDO('mysql:host=localhost;dbname=myDB', 'myusername', 'mypassword');

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

Если это так, я должен передать детали подключения к файлу php следующим образом:

<?php
$server = $_POST['server'];
$database = $_POST['database'];
$username = $_POST['username'];
$password = $_POST['password'];
$db = new PDO('mysql:host=$server;dbname=$database', $username, $password);

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

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

Файл Config.php:

<?php

$HOST = 'hostname';
$DB = 'dbname';
$USER = 'username';
$PWD = 'password';
... other variables and global config ...
?>

Файл подключения к БД:

<?php

include 'config.php';

$db = new PDO("mysql:host=$HOST;dbname=$DB", $USER, $PWD);
?>

Обратите внимание, что строка в соединении PDO заключена в двойные кавычки, потому что при одинарных кавычках интерполяция строк не будет работать.

0 голосов
/ 17 сентября 2018

Ваши переменные $server и $database интерпретируются неправильно, так как вы используете одинарную кавычку '.Вам нужно использовать двойную кавычку " для правильной передачи значений переменных.(Подробнее см. В чем разница между строками в одинарных и двойных кавычках в PHP? ) Измените код, как показано ниже.

<?php
$server = $_POST['server'];
$database = $_POST['database'];
$username = $_POST['username'];
$password = $_POST['password'];
// Replaced ' with "
$db = new PDO("mysql:host=$server;dbname=$database", $username, $password);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...