Недавно мне было предложено изменить свой код на использование PDO, чтобы параметризовать мои запросы и безопасно сохранять HTML в базе данных.
Ну, вот главные проблемы:
Я посмотрел на http://php.net/manual/en/ref.pdo–mysql.php , и я действительно не получаю, где я должен помещать строку $ ./configure --with-pdo-mysql
…
На сайте, который я создаю, на самом деле требуется только PDO для одной страницы. Хотя я могу подумать о повторной записи, это займет некоторое время, и мне нужно, чтобы страницы работали в ближайшее время, поэтому я не могу полностью отключить MySQL. Если я действительно установлю PDO, смогу ли я использовать обработчики mysql_*
?
На сервере, на котором работает сервер, работает PHP версии 5.4.6-1ubuntu1 и Apache / 2.2.22 (Ubuntu). Я также использую базу данных phpMyAdmin, если это имеет значение.
На Ubuntu вы должны иметь возможность установить необходимые части PDO из apt, используя sudo apt-get install php5-mysql
Между использованием PDO и mysql_ нет ограничений. Однако вам нужно будет создать два подключения к вашей базе данных: один с mysql_ и один с PDO.
Это хороший вопрос, но я думаю, вы просто неправильно понимаете, что вы читаете.
./config --with-pdo-mysql
– это то, что вам нужно надеть, только если вы скомпилируете свой собственный PHP-код. Если вы установите его с менеджерами пакетов, вам просто нужно использовать командную строку, предоставленную Jany Hartikainen: sudo apt-get install php5-mysql
а также sudo apt-get install pdo-mysql
Помимо факта, что mysql_ действительно обескуражен, они оба независимы. Если вы используете PDO, mysql_ не участвует, и если вы используете mysql_ PDO, не требуется.
Если вы отключите PDO без изменения какой-либо строки в коде, у вас не будет проблем. Но так как вы начали подключать и писать запросы с помощью PDO, вам нужно сохранить его и отказаться от mysql_.
Несколько лет назад команда MySQL опубликовала скрипт для перехода на MySQLi . Я не знаю, можно ли его настроить, но это официально.
В принципе ответ от Яни Хартикайнен прав! Я поддержал его ответ. То, что отсутствовало в моей системе (на основе Ubuntu 15.04), состояло в том, чтобы включить расширение PDO в моем php.ini
extension=pdo.so extension=pdo_mysql.so
перезапустите веб-сервер (например, с помощью «sudo service apache2 restart») -> каждый штраф 🙂
Чтобы найти, где находится текущий активный файл php.ini, вы можете использовать phpinfo () или некоторые другие подсказки отсюда: https://www.ostraining.com/blog/coding/phpini-file/
Целью этого является внедрение дополнительного уровня безопасности между пользовательским интерфейсом и базой данных. Используя этот уровень, данные могут быть нормализованы перед вставкой в вашу структуру данных. (Столицы – это Столицы, без начальных или конечных пространств, все даты на должном уровне).
Но есть несколько нюансов к этому, о которых вы, возможно, и не подозревали.
Прежде всего, до сих пор вы, вероятно, записывали все свои запросы в нечто похожее на URL-адрес, и вы передаете параметры с помощью самого URL-адреса. Используя PDO, все это делается под уровнем пользовательского интерфейса. Пользовательский интерфейс передает мяч в PDO, который переносит его в поле и заносит его в базу данных для 7-точечного TOUCHDOWN .. он получает семь очков, потому что он получил его там и сделал гораздо безопаснее, чем передача информации по URL-адресу ,
Вы также можете закрепить свой сайт на SQL-инъекцию , используя слой данных. Используя этот промежуточный слой, который является ТОЛЬКО «игроком», который разговаривает с самой базой данных, я уверен, что вы можете видеть, как это может быть гораздо более безопасным. Интерфейс для datalayer для базы данных, datalayer для базы данных для datalayer для интерфейса.
А также:
При внедрении лучших практик при написании кода вы будете намного счастливее с результатом.
Дополнительные источники:
Re: MySQL Функции в URL-адресе php dot net / manual / en / ref dot pdo-mysql dot php
Re: трехуровневая архитектура – добавление безопасности в ваши приложения https://blog.42.nl/articles/introducing-a-security-layer-in-your-application-architecture/
Re: Объектно-ориентированный дизайн с использованием UML. Если вы действительно хотите узнать больше об этом, это лучшая книга на рынке, Грэди Буч был отцом UML http://dl.acm.org/citation.cfm?id=291167&CFID = 241218549 & CFTOKEN = 82813028
Или проверьте с помощью bitmonkey. Там есть группа, я уверен, что вы могли бы многому научиться.
>
>
Если вам нужен CockPHP Docker Container с MySQL, для этой цели я создал изображение Docker! Не нужно беспокоиться о настройке. Это просто работает!
Вот как я установил изображение на основе Ubuntu:
https://github.com/marcellodesales/php-apache-mysql-4-cakephp-docker/blob/master/Dockerfile#L8
RUN docker-php-ext-install mysql mysqli pdo pdo_mysql
Создание и запуск приложения – это всего лишь двухэтапный процесс (учитывая, что вы находитесь в текущем каталоге приложения):
$ docker build -t myCakePhpApp . $ docker run -ti myCakePhpApp
Сначала установите sudo apt-get install php*-mysql
где * – это имя версии php, например 5.6, 7.0, 7.1, 7.2, а затем укажите
extension = pdo.so и extension = pdo_mysql.so
в вашем .ini-файле.