- Это нормально, так как я использую функцию include_once () и вызываю скрипт подключения к БД более одного раза? Будет ли это открыть новый
соединения каждый раз? Если да, как это должно быть реализовано?
Да, это нормально. Поскольку вы используете include_once
, PHP автоматически распознает, что он уже включен в файл, пропустит второй вызов, и вы получите только одно соединение. Однако я бы порекомендовал изменить это значение на require_once
, так как вы хотите, чтобы скрипт немедленно завершился ошибкой, если включенный файл не найден.
- Если кто-то попытается включить файл из внешнего домена с помощью include_once («www.mywebsite.com/php/db_conn.php»), он будет
в состоянии выполнять запросы БД на моей БД?
Обычно нет. Любой, кто запросит этот URL, просто получит пустую страницу. Однако рекомендуется размещать такие библиотечные файлы вне корневого каталога документов веб-сервера. Например:
/path/to/project
/public
index.php
/lib
db_conn.php
Здесь вы указали бы свой веб-сервер на /path/to/project/public
, а затем в вашем index.php
вы бы сделали что-то вроде:
require_once '../lib/db_conn.php';
Или, может быть:
ini_set('include_path', '/path/to/project/lib');
require_once 'db_conn.php';
Таким образом, ваш собственный код может ссылаться на файлы PHP в /lib
, но их нельзя запросить напрямую через веб-сервер.