Progress28.ru

IT Новости
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Php pdo install ubuntu

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

Недавно мне было предложено изменить свой код на использование 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.

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

Установка 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

перезапустите веб-сервер (например, с помощью «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: Объектно-ориентированный дизайн с использованием UML. Если вы действительно хотите узнать больше об этом, это лучшая книга на рынке, Грэди Буч был отцом UML http://dl.acm.org/citation.cfm? >

Или проверьте с помощью bitmonkey. Там есть группа, я уверен, что вы могли бы многому научиться.

Читать еще:  Php path separator

Если бы мы знали, что на самом деле означает терминология, нам не нужно ничего узнавать.

Если вам нужен CockPHP Docker Container с MySQL, для этой цели я создал изображение Docker! Не нужно беспокоиться о настройке. Это просто работает!

Вот как я установил изображение на основе Ubuntu:

Создание и запуск приложения – это всего лишь двухэтапный процесс (учитывая, что вы находитесь в текущем каталоге приложения):

Сначала установите sudo apt-get install php*-mysql где * – это имя версии php, например 5.6, 7.0, 7.1, 7.2, а затем укажите

Installing PDO driver on MySQL Linux server

I was suggested, not long ago, to change my code to use PDO in order to parameterize my queries and safely save HTML in the database.

Well, here are the main problems:

I looked at http://php.net/manual/en/ref.pdo-mysql.php, and I don’t really get where I should put that $ ./configure —with-pdo-mysql string.

The site I’m building actually only requires PDO for one page. While I may consider re-writing it, it would take a while and I need the pages to be running soon, so I can’t turn off MySQL completely. If I do install PDO, will I still be able to use mysql_* handlers?

The server in question is running PHP Version 5.4.6-1ubuntu1 and Apache/2.2.22 (Ubuntu). I’m also running a phpMyAdmin database, if it matters.

6 Answers 6

On Ubuntu you should be able to install the necessary PDO parts from apt using sudo apt-get install php5-mysql

There is no limitation between using PDO and mysql_ simultaneously. You will however need to create two connections to your DB, one with mysql_ and one using PDO.

That’s a good question, but I think you just misunderstand what you read.

Install PDO

The ./config —with-pdo-mysql is something you have to put on only if you compile your own PHP code. If you install it with package managers, you just have to use the command line given by Jany Hartikainen: sudo apt-get install php5-mysql and also sudo apt-get install pdo-mysql

Compatibility with mysql_

Apart from the fact mysql_ is really discouraged, they are both independent. If you use PDO mysql_ is not implicated, and if you use mysql_ PDO is not required.

If you turn off PDO without changing any line in your code, you won’t have a problem. But since you started to connect and write queries with PDO, you have to keep it and give up mysql_.

Several years ago the MySQL team published a script to migrate to MySQLi. I don’t know if it can be customised, but it’s official.

Basically the answer from Jani Hartikainen is right! I upvoted his answer. What was missing on my system (based on Ubuntu 15.04) was to enable PDO Extension in my php.ini

restart the webserver (e.g. with «sudo service apache2 restart») -> every fine 🙂

To find where your current active php.ini file is located you can use phpinfo() or some other hints from here: https://www.ostraining.com/blog/coding/phpini-file/

At first install necessary PDO parts by running the command sudo apt-get install php*-mysql where * is a version name of php like 5.6, 7.0, 7.1, 7.2 After installation you need to mention(uncomment if is already there) these two statements

in your .ini file and restart your server by command

  1. PDO stands for PHP Data Object.
  2. PDO_MYSQL is the driver that will implement the interface between the dataobject(database) and the user input (a layer under the user interface called «code behind») accessing your data object, the MySQL database.

The purpose of using this is to implement an additional layer of security between the user interface and the database. By using this layer, data can be normalized before being inserted into your data structure. (Capitals are Capitals, no leading or trailing spaces, all dates at properly formed.)

But there are a few nuances to this which you might not be aware of.

First of all, up until now, you’ve probably written all your queries in something similar to the URL, and you pass the parameters using the URL itself. Using the PDO, all of this is done under the user interface level. User interface hands off the ball to the PDO which carries it down field and plants it into the database for a 7-point TOUCHDOWN.. he gets seven points, because he got it there and did so much more securely than passing information through the URL.

Читать еще:  Php datetime compare

You can also harden your site to SQL injection by using a data-layer. By using this intermediary layer that is the ONLY ‘player’ who talks to the database itself, I’m sure you can see how this could be much more secure. Interface to datalayer to database, datalayer to database to datalayer to interface.

By implementing best practices while writing your code you will be much happier with the outcome.

Re: MySQL Functions in the url php dot net/manual/en/ref dot pdo-mysql dot php

Re: Object Oriented Design using UML If you really want to learn more about this, this is the best book on the market, Grady Booch was the father of UML http://dl.acm.org/citation.cfm? >

Or check with bitmonkey. There’s a group there I’m sure you could learn a lot with.

Php pdo install ubuntu

Hi, I would like to install PIWIK (Piwik is an open source alternative to Google Analytics) on the LAMP appliance.

One of the Piwik requirements is to have installed the PHP extensions pdo and pdo_mysql.

How can I install them on the LAMP appliance?

Thanks for your help!

What I found Googling for «Ubuntu pdo pdo_mysql»

This doesn’t work all the time.

In my debian, fail to compile.

So, sudo apt-get install php-mysql or something like that and bingo, of course, after php5-dev i think.

Most instructions on TurnKey site assume you are root

Also FWIW this thread is quite old, so may not still be 100% relevant.

You might also need.

Does not work in Ubuntu 10.04

The PDO drivers are now part of the core instead of PECL.

How can PDO and PDO_MYSQL be configured?

I’m not sure

But from a quick google it seems they are a default part of php (since v5.1 — TKL v11.x has v5.3). I would assume that it is enabled by default, but if not then I imagine you just need to add it to the php.ini file (see Alon’s post above).

helped me

Thanks it saved me

Thanks

OMG Thanks!

OMG, thanks! You just saved my life!

Im getting error on Ubuntu 12.04

When I tried as mentioned above im getting the following error

Both these two commands were giving error

/tmp/pear/temp/PDO/pdo_dbh.c: In function ‘pdo_hash_methods’:
/tmp/pear/temp/PDO/pdo_dbh.c:1122:24: warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default]
/tmp/pear/temp/PDO/pdo_dbh.c:1126:20: warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default]
make: *** [pdo_dbh.lo] Error 1
ERROR: `make’ failed

Pls Help Im very new on LINUX

Probably best to ask on Ubuntu forums

Turnkey is now based on Debian and whilst they are close, they’re not the same. You may get lucky, but I doubt you’ll get an answer here. Sorry

PHP: PDO быстрый старт, работа с MySQL

Содержание:

PDO (PHP Data Objects) — расширение PHP, которое реализует взаимодействие с базами данных при помощи объектов. Профит в том, что отсутствует привязка к конкретной системе управления базами данных. PDO поддерживает СУБД: MySQL, PostgreSQL, SQLite, Oracle, Microsoft SQL Server и другие.

Официальный мануал по PHP PDO здесь . Там же можно найти и сам класс PDO .

Почему стоит использовать PDO

Функции mysql в PHP для работы с БД давно уже устарели, на сегодняшний день желательно использовать mysqli или PDO (PHP Data Objects). Кроме того, mysqli — эта библиотека, которая по большому счёту, не предназначена для использования напрямую в коде. Она может послужить хорошим строительным материалом для создания библиотеки более высокого уровня. При работе с mysqli следует также помнить об обеспечении безопасности вашего приложения, в частности о защите от SQL-инъекций. В случае использования PDO (с его подготовленными запросами), такая защита идёт уже «из коробки», главное правильно применить необходимые методы.

Читать еще:  Php datetime сравнение дат

Тестовая база данных с таблицей

Установка PDO

Проверить доступные драйвера

Соединение с базой данных

Соединения устанавливаются автоматически при создании объекта PDO от его базового класса.

При ошибке подключения PHP выдаст ошибку:

В этом примере подключения мы используем конструкцию try. catch . Многие спорят о целесообразности её использования. Лично я использую try. catch , она мне не мешает.

Подготовленные и прямые запросы

В PDO два способа выполнения запросов:

  • Прямой — состоит из одного шага;
  • Подготовленный — состоит из двух шагов.

Прямые запросы

  • query() используется для операторов, которые не вносят изменения, например SELECT . Возвращает объект PDOStatemnt , из которого с помощью методов fetch() или fetchAll извлекаются результаты запроса. Можно его сравнить с mysql resource , который возвращала mysql_query() .
  • exec() используется для операторов INSERT, DELETE, UPDATE . Возвращает число обработанных запросом строк.

Прямые запросы используются только в том случае, если в запросе отсутствуют переменные и есть уверенность, что запрос безопасен и правильно экранирован.

Подготовленные запросы

Если же в запрос передаётся хотя бы одна переменная, то этот запрос в обязательном порядке должен выполняться только через подготовленные выражения . Что это значит? Это обычный SQL запрос, в котором вместо переменной ставится специальный маркер — плейсхолдер. PDO поддерживает позиционные плейсхолдеры ( ? ), для которых важен порядок передаваемых переменных, и именованные ( :name ), для которых порядок не важен. Примеры:

Чтобы выполнить такой запрос, сначала его надо подготовить с помощью метода prepare() . Она также возвращает PDO statement , но ещё без данных. Чтобы их получить, надо исполнить этот запрос, предварительно передав в него наши переменные. Передать можно двумя способами: Чаще всего можно просто выполнить метод execute() , передав ему массив с переменными:

Как видно, в случае именованных плейсхолдеров в execute() должен передаваться массив, в котором ключи должны совпадать с именами плейсхолдеров. После этого можно извлечь результаты запроса:

ВАЖНО! Подготовленные запросы — основная причина использовать PDO, поскольку это единственный безопасный способ выполнения SQL запросов, в которых участвуют переменные.

Получение данных. Метод fetch()

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

В этом режиме не тратится лишняя память, и к тому же к колонкам можно обращаться любым из трех способов — через индекс, имя, или свойство (через -> ). Недостатком же данного режима является то, что он не работает с fetchAll()

Получение данных. Метод fetchColumn()

Также у PDO statement есть метод для получения значения единственной колонки. Очень удобно, если мы запрашиваем только одно поле — в этом случае значительно сокращается количество кода:

Получение данных. Метод fetchAll()

PDO и оператор LIKE

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

Здесь может вознинуть проблема! Поиск может не работать, потому как из базы у вас приходят данные в неправильной кодировке. Необходимо добавить кодировку в подключение, если она там не указана!

PDO и оператор LIMIT

Важно! Когда PDO работает в режиме эмуляции, все данные, которые были переданы напрямую в execute() , форматируются как строки. То есть, эскейпятся и обрамляются кавычками. Поэтому LIMIT . превращается в LIMIT ’10’, ’10’ и очевидным образом вызывает ошибку синтаксиса и, соответственно, пустой массив данных.

Решение #1 : Отключить режим эмуляции:

Решение #2 : Биндить эти цифры через bindValue() , принудительно выставляя им тип PDO::PARAM_INT :

PDO и оператор IN

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

Добавление записей

Изменение записей

Удаление записей

Использование транзакций

Важно! Транзакции в PDO работают только с таблицами InnoDB

В данной заметке мы познакомились с основными понятиями PDO, его установкой, подключением к БД и самые простые возможности выборки, изменения и удаления данных. В следующих заметках мы рассмотрим ещё несколько тем, касающихся PDO.

Ссылка на основную публикацию
Adblock
detector