Установка драйвера PDO на сервере MySQL Linux

Недавно мне было предложено изменить свой код на использование PDO, чтобы параметризовать мои запросы и безопасно сохранять HTML в базе данных.

Ну, вот главные проблемы:

  1. Я посмотрел на http://php.net/manual/en/ref.pdomysql.php , и я действительно не получаю, где я должен помещать строку $ ./configure --with-pdo-mysql

  2. На сайте, который я создаю, на самом деле требуется только 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.

Это хороший вопрос, но я думаю, вы просто неправильно понимаете, что вы читаете.

Установка PDO

./config --with-pdo-mysql – это то, что вам нужно надеть, только если вы скомпилируете свой собственный PHP-код. Если вы установите его с менеджерами пакетов, вам просто нужно использовать командную строку, предоставленную Jany Hartikainen: sudo apt-get install php5-mysql а также sudo apt-get install pdo-mysql

Совместимость с 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/

  1. PDO обозначает объект данных PHP.
  2. PDO_MYSQL – это драйвер, который будет реализовывать интерфейс между dataobject (база данных) и пользователем (слой под пользовательским интерфейсом, называемый «код сзади»), доступ к вашему объекту данных, базе данных MySQL.

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

Но есть несколько нюансов к этому, о которых вы, возможно, и не подозревали.

Прежде всего, до сих пор вы, вероятно, записывали все свои запросы в нечто похожее на 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-файле.