- Android — PHP / MYSQL
- PHP — MYSQL
- Создание базы данных
- Создание таблиц
- Вставка значений в таблицы
- PHP — методы GET и POST
- Android — Подключение MYSQL
- Подключение через метод Get
- Подключение через почтовый метод
- пример
- PHP — часть MYSQL
- Android часть
- Как работать с MySQL в Android? Часть 1
- Что вам потребуется?
- Шаг 1. Установка WEB-сервера.
- Шаг 2. Создание БД
- Шаг 3. Подключение к MySQL базе с помощью PHP
- Шаг 4. Базовые CRUD операции в PHP
- Запись строки в БД
- Чтение строки с БД
- Получение всех продуктов с БД
- Обновление продукта в БД
- Удаление продукта с БД
- H Подключение к mysql при помощи android api, json’a и php в черновиках Из песочницы Tutorial
- .collapse»>Содержание
- Введение
- Создание проекта в Eclipse (далее ADT)
- Создание backend
- Создание приложения Android
- Android. Работаем с MS SQL без посредников
Android — PHP / MYSQL
В этой главе мы собираемся объяснить, как вы можете интегрировать PHP и MYSQL с вашим Android-приложением. Это очень полезно, если у вас есть веб-сервер, и вы хотите получить доступ к его данным в приложении для Android.
MYSQL используется в качестве базы данных на веб-сервере, а PHP используется для извлечения данных из базы данных. Наше приложение свяжется со страницей PHP с необходимыми параметрами, а PHP свяжется с базой данных MYSQL, получит результат и вернет его нам.
PHP — MYSQL
Создание базы данных
База данных MYSQL может быть легко создана с помощью этого простого скрипта. Оператор CREATE DATABASE создает базу данных.
Создание таблиц
Как только база данных создана, пришло время создать несколько таблиц в базе данных. Оператор CREATE TABLE создает базу данных.
Вставка значений в таблицы
Когда база данных и таблицы созданы. Теперь пришло время вставить некоторые данные в таблицы. Оператор Insert Into создает базу данных.
PHP — методы GET и POST
PHP также используется для извлечения записи из базы данных mysql после ее создания. Чтобы получить запись, на страницу PHP необходимо передать некоторую информацию о том, какую запись нужно извлечь.
Первый способ передачи информации — это метод GET, в котором используется команда $ _GET . Переменные передаются в URL, и запись извлекается. Его синтаксис приведен ниже —
Второй метод заключается в использовании метода POST. Единственное изменение в приведенном выше сценарии — заменить $ _GET на $ _POST . В методе Post переменные не передаются через URL.
Android — Подключение MYSQL
Подключение через метод Get
Существует два способа подключения к MYSQL через страницу PHP. Первый называется методом Get . Мы будем использовать классы HttpGet и HttpClient для подключения. Их синтаксис приведен ниже —
После этого вам нужно вызвать метод execute класса HttpClient и получить его в объекте HttpResponse. После этого вам нужно открыть потоки для получения данных.
Подключение через почтовый метод
В методе Post будет использоваться URLEncoder , класс URLConnection . Urlencoder закодирует информацию о передаваемых переменных. Это синтаксис приведен ниже —
Последнее, что вам нужно сделать, это записать эти данные по ссылке. После записи вам необходимо открыть поток, чтобы получить ответные данные.
пример
Приведенный ниже пример является полным примером подключения вашего приложения для Android к базе данных MYSQL через страницу PHP. Он создает базовое приложение, которое позволяет войти в систему, используя метод GET и POST.
PHP — часть MYSQL
В этом примере база данных с именем temp была создана на 000webhost.com. В этой базе данных была создана таблица с именем table1. Эта таблица имеет три поля. (Имя пользователя, Пароль, Роль). В таблице есть только одна запись («admin», «admin», «administrator»).
Ниже приведена страница php, которая принимает параметры методом post.
Android часть
Чтобы поэкспериментировать с этим примером, вам нужно запустить его на реальном устройстве, к которому подключен интернет Wi-Fi.
меры | Описание |
---|---|
1 | Вы будете использовать IDE Android Studio для создания приложения Android и назовите его PHPMYSQL в пакете com.example.phpmysql. |
2 | Измените файл src / MainActivity.java, чтобы добавить код активности. |
3 | Создайте файл src / SiginActivity.java, чтобы добавить код PHPMYSQL. |
4 | Измените XML-файл макета. Res / layout / activity_main.xml добавьте любой компонент GUI, если это необходимо. |
5 | Измените файл res / values / string.xml и добавьте необходимые строковые компоненты. |
6 | Измените AndroidManifest.xml, чтобы добавить необходимые разрешения. |
7 | Запустите приложение и выберите работающее устройство Android, установите на него приложение и проверьте результаты. |
Вот содержимое src / com.example.phpmysql / MainActivity.java .
Вот содержимое файла src / com.example.phpmysql / SigninActivity.java .
Добавьте следующий контент в build.gradle и пересоберите весь проект.
Вот содержание activity_main.xml .
Вот содержимое Strings.xml .
Вот содержимое AndroidManifest.xml .
Давайте попробуем запустить ваше приложение PHPMYSQL. Я предполагаю, что вы подключили свое фактическое мобильное устройство Android к компьютеру. Чтобы запустить приложение из студии Android, откройте один из файлов деятельности вашего проекта и нажмите «Выполнить». значок из панели инструментов. Перед запуском приложения Android Studio отобразит следующее окно, чтобы выбрать опцию, в которой вы хотите запустить приложение Android.
Выберите мобильное устройство в качестве опции, а затем проверьте свое мобильное устройство, которое отобразит следующий экран —
Теперь просто введите свое имя пользователя и пароль. В моем случае я набираю admin как имя пользователя и пароль. Это показано на рисунке —
Теперь нажмите кнопку Get и подождите несколько секунд, и ответ будет загружен и будет показан вам. В этом случае ответом является РОЛЬ, которая выбирается в случае администратора как имя пользователя и пароль. Это показано на рисунке ниже —
Теперь снова нажмите кнопку POST и появится тот же результат. Это показано на рисунке ниже —
Источник
Как работать с MySQL в Android? Часть 1
На днях мне пришлось подключится к внешней БД MySQL в Android приложении, которое бы использовало ресурсы готового сервиса, так вот в данном уроке я покажу как я это сделал.
В данном уроке мы с вами сделаем простое Android-приложения, который будет вызывать PHP скрипт для выполнения основных CRUD (Create, Read, Update, Delete) операций.
Android приложение будет вызывать PHP скрипт, который будет подключается к базе данных MySQL и выполнить какие то операции.
Что вам потребуется?
1) WEB-сервер для PHP. Будем использовать сборку DenWer.
2) MySQL база данных.
3) Android Emulator.
Шаг 1. Установка WEB-сервера.
Так как мы будем работать со сборкой Denwer, то для начала скачиваем её тут http://www.denwer.ru/
После того как вы его установили и проверили, что он работает, переходим к следующему шагу.
Шаг 2. Создание БД
Так как мы подняли WebServer Denwer в нем уже вшита MySQL база данных, давайте создадим базу и таблицу (products) в ней.
Создание таблиц в БД:
В конце видео создания БД я не зря показал локальный IP, так как я использую виртуальную ОС для удобства. В вашем случае вы будите обращаться к localhost или же 127.0.0.1 .
Шаг 3. Подключение к MySQL базе с помощью PHP
Давайте создадим PHP класс, который будет отвечать за подключение к БД. Основная цель этого класса – открытие и закрытие соединения с БД.
Но, для того что бы подключатся к БД нам нужно где то хранить требуемые параметры для подключения к БД для этого создадим [C:\WebServers\home\devserver.com\www\db_config.php] со следующим содержимым:
А теперь создадим в той же директории файл [C:\WebServers\home\devserver.com\www\db_connect.php] со следующим содержимым:
Шаг 4. Базовые CRUD операции в PHP
В этом уроке я покрываю основные CRUD (Create, Read, Update, Delete) операций для MySQL с помощью PHP.
Запись строки в БД
Создадим в нашем PHP проекте новый файл create_product.php который будет обеспечивать возможность записи продукта в БД.
Для приведенного выше кода JSON ответ будет примерно таким:
Когда POST параметр(ы) отсутствует:
Когда продукт успешно добавлен:
Когда ошибка при добавлении данных в БД:
Чтение строки с БД
Создадим новый PHP файл в нашем проекте и назовем его get_product_details.php со следующим содержанием:
Ответ JSON для вышеупомянутого файла будет следующим.
При успешном получении продукта:
Когда продукт не найден:
Получение всех продуктов с БД
Для того чтобы вывести весь список продуктов на устройство нам нужно получить все продукты с БД.
Создадим get_all_products.php со следующим содержимым:
JSON ответ выше приведенного кода будет таким:
Когда продукт не найден:
Обновление продукта в БД
Создайте файл с именем update_product.php со следующим содержимым:
Ответ JSON выше кода, когда продукт успешно обновлены будет следующим:
Удаление продукта с БД
Последняя операция удаления из базы данных. Создайте новый файл назовите delete_product.php и вставьте следующий код:
Когда продукт удачно будет удален то JSON ответ будет таким:
Когда продукт не найден, то таким:
Теперь наконец-то мы можем приступить к программированию на Android. То что мы описали выше на PHP будем использовать как API слой. И наше приложение будет общаться с MySQL сервером по средством JSON формата и GET, POST запросов.
Источник
H Подключение к mysql при помощи android api, json’a и php в черновиках Из песочницы Tutorial
.collapse»>Содержание
Введение
Создание проекта в Eclipse (далее ADT)
Итак, поехали. Заходим, создаем новое приложение в нашем ADT под названием AndroMySQL, активити используем: mainActivite.
Создание backend
Нам нужно написать серверную часть. В своем уроке я буду использовать для работы серверной части PHP, MySQL, PHPMyAdmin, Linux Debian.
Шаг 1
Ставим сервер, я использовал хостера VPS. Купил сервер за 300 рублей и на нем работал. Вы можете сделать также, а можете просто установить себе виртуальную машину с Linux, я бы порекомендовал для этого не очень опытным «кодерам» Ubunt’u. Как настроить сервер можно легко найти на хабре, есть сотни статей.
Шаг 2
Теперь, когда наш сайт (далее site.ru) доступен, мы можем приступить к делу и взяться за написание серверной части нашего проекта.
Заходим в корень site.ru (через FTP/SFTP или проводник) и создаем там файл andro.php. В итоге созданный файл должен быть виден по такой ссылке: www.site.ru/andro.php. Далее создаем файл add_prod.php (аналогично первому файлу add_prod.php должен быть доступен по ссылке www.site.ru/add_prod.php).
Шаг 3
Заходим в наш PHPMyAdmin (чаще всего это site.ru/phpmyadmin) и создаем новую базу под название andro. В этой базе нам нужно создать таблицу под названием products, которая будет состоять из сущностей: id_product, title, short, price.
id_product — номер продукта (значение типа int, длина 128, AUTOINCREMENT);
title — название продукта (значение типа VarChar, длина 512);
short — описание продукта (значение типа VarChar, длина 2048);
price — цена продукта (значение типа int, длина 128).
Шаг 4
Открываем файл andro.php для редактирования (для уменьшения вероятности появления ошибки сделайте кодировку файла ANSI). В этом файле нам нужно будет прописать функционал получения данных из нашей БД и вывод их в формате JSON (если вам неизвестно — эта аббревиатура, то для начала прочитайте о нем). Итак, файл должен быть такого содержания:
Пока не заходим на andro.php через сайт, так как значений у нас в БД еще нет, поэтому отредактируем ранее созданный файл add_prod.php.
Шаг 5
Открываем файл add_prod.php для редактирования (также про кодировку не забываем). Содержимое файла должно быть таким:
Шаг 6
Теперь нужно перейти на www.site.ru/add_prod.php и добавить записи (количество на ваше усмотрение).
Шаг 7
После добавления зайдите на www.site.ru/andro.php и в результате на странице должно получиться что-то вроде этого.
Итак, мы закончили с серверной частью, теперь перейдем к так называемому frontend’у или к части приложения Android.
Создание приложения Android
Итак, в начале урока мы уже создали форму для дальнейшей разработки, давайте перейдем в ADT.
Источник
Android. Работаем с MS SQL без посредников
Предупреждение:
Вообще говоря, информация из статьи применима только для некоторых специфических случаев. Например, когда приложение работает внутри какого-то сегмента изолированной сети. А в общем случае посредник, коим является http-сервер, всё-таки нужен. Хотя бы потому, что при описанном методе логин/пароль доступа к базе зашиты в приложении и передаются по сети.
Статья является продолжением работы, о которой писал в своём предыдущем посте. Изначально эту часть писать не хотелось (см. предупреждение), но на хабре данная тема ещё не освещена, и в целом в сети меньше информации.
Поэтому, если Вам интересно, как можно из под Android напрямую работать с MS SQL (логично предположить, что и с другими БД, но на практике я этого не делал), добро пожаловать под кат.
В Java (и Android соответственно) соединение с удалёнными БД происходит при помощи JDBC-драйверов. В моём конкретном случае сервер майкрософтовский, и для него существует два драйвера: от Microsoft и открытая альтернатива JTDS. Причём последний, по заверениям разработчиков, работает быстрее и стабильней официального. Вот его и будем использовать.
Грабли: Актуальная версия JTDS на дату написания поста — 1.3.1. Но начиная с версии 1.3.0 драйвер переписан для совместимости с Java 7, и в сети встречаются сообщения о проблеме работы этих версий в Android. Поэтому необходимо использовать последнюю стабильную версию ветки 1.2.* (1.2.8), которая для Java 6.
На SQL-сервере должна быть настроена работа через TCP/IP.
Получение данных
Данные запросов драйвер возвращает в интерфейсе ResultSet который похож на андроидный Cursor, но быстрого способа приведения ResultSet к курсору я не нашёл. Поэтому поступим по-другому, данные из ResultSet будут конвертироваться в массив JSONArray и возвращаться в основную логику приложения, откуда с ними можно будет делать что угодно.
Весь обмен данными, как потенциально продолжительную операцию, будем делать асинхронно. В итоге получается примерно такой симпатичный класс для запросов к MS SQL:
EDIT: Переписал закрытие Connection, Statement и ResultSet в примерах в соответствии с основами.
На вход классу подаётся запрос, на выходе — готовый JSONArray, как если бы мы получали данные от веб-сервера. В отдельном потоке AsyncTask соединяется с сервером, получает данные в ResultSet и формирует из них JSON. Думаю, в целом код примитивен и в пояснениях не нуждается.
Для построения систем, работающих по подобному принципу, лучше передавать на вход не чистые select-запросы, а написать на сервере готовые T-SQL функции, передавая параметры к которым, можно получать нужные выборки.
Insert и Update. Передача данных на сервер
К сожалению, тут я не придумал ничего лучше, просто выполнение Insert-ов в транзакции. В прочем, метод отлично работает, вставка нескольких сотен записей занимает приемлемое время (около секунды на 100 строк, полей в реальном проекте больше, чем в приведённом примере).
EDIT: по совету eyeless_watcher использую метод addBatch() при заполнении PreparedStatement. Вот теперь вставка данных выполняется на самом деле быстро, в одной транзакции. Пример изменил.
Для вставки нужных значений используется PreparedStatement. Нумерация полей в нём почему-то начинается с единицы (см. документацию). А в остальном — всё должно быть понятно. update можно реализовать схожим образом, аналогично используя executeUpdate.
Приведённый подход был использован мной в «боевом» приложении первый раз.
На практике оказалось, что он стабильно работает. Время соединения с БД иногда может занимать несколько секунд (подключаюсь по wi-fi, сервер общий на всё предприятие), но сами транзакции выполняются быстро.
Источник