connect to php API from php website
I’m quite new to PHP. As a learning project, I’m currently building a website on which users can order products. I don’t want my website to connect to the database I have directly, but I want that process to go through an API I’ve made. The API has a quite simple structure: the index.php receives the call and the variables (through post) and then, depending on the type of data received, runs one of the functions in one of it’s controllers. So, the question: How do I set up a connection between my website and my php api (on the same server) to access my database? I have searched the web and SO for API connections but most of the questions are about the FB API and oAuth etcetera. If I have missed a similar question please inform me because then I’ll delete this question. Any help would be much appreciated, Thank you in advance!
asked Jan 8, 2014 at 20:31
4,751 5 5 gold badges 32 32 silver badges 60 60 bronze badges
You should have TWO APIs. One designed for remote usage via HTTP calls, and one for local use as PHP function calls and whatnot. Forcing your own server’s code to do a full-blown http request TO ITSELF is a hideous waste of resources and highly inefficient.
Jan 8, 2014 at 20:34
1 Answer 1
Sounds like you want to implement a REST API. There are a boatload of tutorials and helpful links that you can find very easily to read up on this subject. (Here is a decent starting point). There are also many, many frameworks that you can use that handle RESTful interactions automatically.
EDIT:
Once you have a REST API setup, the best way to connect and interact with your API in PHP is using the cURL module. This is a good intro to the subject of using cURL in PHP.
The current preferred structure for passing data from API -> client is JSON. PHP makes it trivial to work with JSON. Within your API use json_encode to convert a PHP variable into it’s JSON equivalent string. Inside your client, convert the JSON response from your API into a PHP object using the inverse function: json_decode
This is a very well known/widely used technique and there are many more nuances to consider, but this should be a sufficient intro for testing purposes. Once you understand the ideas I strongly recommend doing some google/stackoverflow searches and reading more on the subject.
mysql_connect
Данный модуль устарел, начиная с версии PHP 5.5.0, и удалён в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API. Альтернативы для данной функции:
Описание
mysql_connect (
string $server = ini_get(«mysql.default_host») ,
string $username = ini_get(«mysql.default_user») ,
string $password = ini_get(«mysql.default_password») ,
bool $new_link = false ,
int $client_flags = 0
): resource | false
Открывает новое соединение с сервером MySQL или использует уже существующее.
Список параметров
Сервер MySQL. Может также включать номер порта, например, «hostname:port» или путь к локальному сокету, например, «:/path/to/socket» для локального сервера.
Если PHP-директива mysql.default_host не определена (по умолчанию), то значением по умолчанию является ‘localhost:3306’. В SQL safe mode этот параметр игнорируется и всегда используется значение ‘localhost:3306’.
Имя пользователя. Значение по умолчанию определяется директивой mysql.default_user. В SQL safe mode этот параметр будет проигнорирован и будет использован пользователь, владеющий процессом сервера.
Пароль. Значение по умолчанию определяется директивой mysql.default_password. В SQL safe mode этот параметр будет проигнорирован и в качестве пароля будет использована пустая строка.
Если второй вызов функции mysql_connect() произошёл с теми же аргументами, то новое соединение не будет установлено. Вместо этого функция вернёт ссылку на уже установленное соединение. Параметр new_link может заставить функцию mysql_connect() открыть ещё одно соединение, даже если соединение с аналогичными параметрами уже открыто. В SQL safe mode этот параметр игнорируется.
Параметр client_flags должен быть комбинацией из следующих констант: 128 (включает обработку LOAD DATA LOCAL ), MYSQL_CLIENT_SSL , MYSQL_CLIENT_COMPRESS , MYSQL_CLIENT_IGNORE_SPACE or MYSQL_CLIENT_INTERACTIVE . Подробнее читайте в разделе Клиентские константы MySQL. В SQL safe mode этот параметр игнорируется.
Возвращаемые значения
Возвращает дескриптор соединения с MySQL в случае успешного выполнения или false в случае возникновения ошибки.
Примеры
Пример #1 Пример использования mysql_connect()
$link = mysql_connect ( ‘localhost’ , ‘mysql_user’ , ‘mysql_password’ );
if (! $link ) die( ‘Ошибка соединения: ‘ . mysql_error ());
>
echo ‘Успешно соединились’ ;
mysql_close ( $link );
?>?php
Пример #2 Пример использования mysql_connect() с синтаксисом hostname:port
// соединяемся с example.com на порту 3307
$link = mysql_connect ( ‘example.com:3307’ , ‘mysql_user’ , ‘mysql_password’ );
if (! $link ) die( ‘Ошибка соединения: ‘ . mysql_error ());
>
echo ‘Успешно соединились’ ;
mysql_close ( $link );
?php
// соединяемся с localhost на порту 3307
$link = mysql_connect ( ‘127.0.0.1:3307’ , ‘mysql_user’ , ‘mysql_password’ );
if (! $link ) die( ‘Ошибка соединения: ‘ . mysql_error ());
>
echo ‘Успешно соединились’ ;
mysql_close ( $link );
?>
Пример #3 Пример использования mysql_connect() с синтаксисом «:/path/to/socket»
// соединяемся к localhost по сокету, т.е. /tmp/mysql.sock
?php
// вариант 1: не указываем localhost
$link = mysql_connect ( ‘:/tmp/mysql’ , ‘mysql_user’ , ‘mysql_password’ );
if (! $link ) die( ‘Ошибка соединения: ‘ . mysql_error ());
>
echo ‘Успешно соединились’ ;
mysql_close ( $link );
// вариант 2: указываем localhost
$link = mysql_connect ( ‘localhost:/tmp/mysql.sock’ , ‘mysql_user’ , ‘mysql_password’ );
if (! $link ) die( ‘Ошибка соединения: ‘ . mysql_error ());
>
echo ‘Успешно соединились’ ;
mysql_close ( $link );
?>
Примечания
Замечание:
При указании параметру server значения «localhost» или «localhost:port» клиентская библиотека MySQL будет пытаться соединиться с локальным сокетом. Если вы всё же хотите использовать TCP/IP, используйте адрес «127.0.0.1» вместо «localhost». Если клиентская библиотека пытается подключиться не к тому локальному сокету, правильный путь должен быть установлен через указание директивы php.ini mysql.default_host в php.ini , после чего можно оставлять параметр server пустым.
Замечание:
Соединение с сервером будет закрыто при завершении исполнения скрипта, если только до этого оно не было закрыто с помощью функции mysql_close() .
Замечание:
Ошибка «Can’t create TCP/IP socket (10106)» (Невозможно создать сокет TCP/IP) обычно означает, что конфигурационная директива variables_order не содержит символ E . В Windows, если в окружение не будет скопирована переменная окружения SYSTEMROOT , то PHP будет испытывать проблемы при загрузке Winsock.
Смотрите также
- mysql_pconnect() — Устанавливает постоянное соединение с сервером MySQL
- mysql_close() — Закрывает соединение с сервером MySQL
Как подключать API?
Всем привет. Хочу научиться подключать API для сайта.
Как это делать? Что лучше всего почитать? Где посмотреть пример? И тд.
В php не особо силен. Так что стандартные инструкции не особо подходят.
Пример, что можно было бы подключить ping-admin.ru/texts/60.html самый простой пример. Думаю там не сложно, что то реализовать!
- Вопрос задан более трёх лет назад
- 23961 просмотр
Комментировать
Решения вопроса 0
Ответы на вопрос 5
Тебе сначала надо понять как работает твой сайт. И вообще на php ли он.
Что бы это понять в большинстве случаев php приходится изучить. Хотя бы до среднего уровня.
Обычные владельцы сайтов иногда могут обойтись готовыми плагинами под различные популярные CMS.
Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать
Web Developer
1. Написать все эти функции для сайта(внутри) и сделать их доступными по различным запросам(Rest API).
2. Написать сами скрипты, которые будут обращаться через это апи и парсить данные.
wiki toster
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Drugs-driven development
1) общие принципы: habrahabr.ru/post/144011
2) узнать на чём сайт и гуглить уже более конкретно
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

LittleFatNinja @LittleFatNinja
горе девелопер, любитель лютой садомии
Что лучше всего почитать?
ты ж сам дал ссылку, где написано как пользоватся
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

PHP, Golang. https://github.com/index0h
)) Для начала нужно понять, что API — это интерфейс, который нужно реализовать. Подключают же услуги сторонних систем. API с серверной части этих систем часто публичные + имеют документацию с инструкцией как работать со стороны клиента с их API. Это значит, что вам нужно реализовать код, который будет выполнять запросы к стороннему сервису, согласно его документации. Если в PHP особо не сильны — забудьте.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- PHP
- +2 ещё
Как вывести полное описание товара в категории Woocommerce?
- 1 подписчик
- 9 часов назад
- 17 просмотров
