Elettracompany.com

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

Php mssql connect

mssql_connect

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_connect — Открывает соединение с MS SQL server

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

Описание

mssql_connect() устанавливает соединение с MS SQL server.

Подключение к серверу будет закрыто как только будет завершено выполнение скрипта, если его не закрыть раньше с помощью функции mssql_close() .

Список параметров

Сервер MS SQL. Может также включать номер порта, например hostname:port (Linux), или hostname,port (Windows).

Если mssql_connect() будет вызвана повторно с теми же аргументами, то нового соединения создано не будет, а ,вместо этого, будет возвращен уже существующий идентификатор подключения. Этот параметр изменяет такое поведение, и заставляет mssql_connect() всегда создавать новое соединение, даже если mssql_connect() была вызвана ранее с такими же параметрами.

Возвращаемые значения

Возвращает идентификатор соединения с MS SQL в случае успеха, или FALSE при ошибке.

Список изменений

Примеры

Пример #1 Пример использования mssql_connect()

при использовании нестандартного порта
$server = ‘KALLESPCSQLEXPRESS’ ;

// Подключение к MSSQL
$link = mssql_connect ( $server , ‘sa’ , ‘phpfi’ );

if (! $link ) <
die( ‘Something went wrong while connecting to MSSQL’ );
>
?>

Смотрите также

  • mssql_close() — Закрывает соединение с MS SQL Server
  • mssql_pconnect() — Открывает постоянное соединение с MS SQL

User Contributed Notes 40 notes

If someone encounters the interesting problem in which PHP can connect to a MSSQL server from the command line but not when running as an Apache module: SELinux prevents Apache (and therefore all Apache modules) from making remote connections by default.

This solved the problem in CentOS:
# setsebool -P httpd_can_network_connect=1

If you use PHP on Windows with Apache as a web server, you may get problems with authentication to MS SQL Server even when you supply all valid credentials.

Check your php.ini file:
; Use NT authentication when connecting to the server
mssql.secure_connection = On

If you have secure_connection = On, make sure that you provide valid credentials in the properties for Apache service in the System Services box. Then you should not send DB username and password from your script to MSSQL Server.

If you want to use specific credentials from a PHP script, then set mssql.secure_connection = Off in your php.ini

Cent OS — Remote SQL server connection
$link = mssql_connect(72.xx.xxx.xxx, username, password);

If you are not getting success, please check

There is certainly a php-mssql package available in the extras repository so just a `yum install php-mssql` should sort that out — it pulls in freetds as a dependency too. If you already have those installed but it doesn’t seem to be connecting, the one possibility is that you are being blocked by SELinux. To check that run

# getsebool -a | grep httpd_can_network_connect
httpd_can_network_connect —> on
httpd_can_network_connect_db —> on

and to enable them if they are not on, do

setsebool -P httpd_can_network_connect 1
setsebool -P httpd_can_network_connect_db 1

The following method: serverinstance
does’nt work on unix systems.

An instance is nothing more than specific port address different than 1433. so just discover the port on mssql server and then try to connect using:

In unix the port is specified by : not by ,

For anyone who have to connect to crappy SQL SERVER with \computer_nameinstance_name and failed to connect. There are couple of thing you need do.

1). There’s no needs to install SQL client software in your app server. This would keep your server clean.
2). run cliconfg.exe setup alias in case you needed
3). last and most important, do NOT use ntwdblib.dll came with PHP 4.4.x. It’s not most current. The version I’m using is: 8.00.194 with 274,489 Bytes. And make sure you put this file in your system32 folder.

For those trying to connect PHP 5.2 to a 2005 Microsoft SQL Server Analysis Services (SSAS) cube and execute MDX queries, you have to establish a link via a trusted connection from the Database Service to SSAS using a stored procedure, then execute the stored procedure via PHP.

Here is an example stored procedure that retrieves records from the Adventure Works sample cube that ships with SSAS.

From SQL Server Query Analyzer, you could test it as:

From PHP, you would execute something like the following:

$resultset = mssql_query(«exec testMDX»,$res_id);

then loop thorugh the result set.

— STORED PROCEDURE BEGIN

set ANSI_NULLS ON — Must be enabled at time Stored Proc is created
set QUOTED_IDENTIFIER ON — Must be enabled at time Stored Proc is created
GO

Create Procedure [dbo].[testMDX]
as
BEGIN
SET ANSI_WARNINGS ON: — Must be enabled
SET ANSI_NULLS ON; — Must be enabled

Declare
@SQL varchar(1200), — Variable to hold SQL query
@MDX varchar (1000), — Variable to hold MDX query
;

— Establish a link to Analysis Server
exec sp_addlinkedserver
@server=’linked_olap’, — Alias used to reference the link
@srvproduct=», — Not used
@provider=’MSOLAP.3′, — OLAP driver
@datasrc=’servername’, — Database server name
@catalog=’Adventure Works DW Standard Edition’ — Database name
;

— Analysis Server requires a TRUSTED connection
exec sp_addlinkedsrvlogin
@rmtsrvname = ‘linked_olap’, — Alias used to reference the link
@useself = ‘false’, — Use own credentials
@locallogin = NULL, — Apply to all local logins
@rmtuser = ‘domainusername’, — Remote user name
@rmtpassword = ‘xyz123’ — Remote user password
;

Читать еще:  Натуральный логарифм matlab

— Create a temporary table that will be used to hold the MDX output
create table #temp_table (column1 text null, column2 text null);

— Setup a string to hold the MDX so that the precompiler does not try to validate the syntax
SET @MDX = ‘SELECT [Product].[Category].members ON ROWS,
ON COLUMNS
FROM [Adventure Works] ‘ ;

— Setup a string to insert the MDX results into the temporary table
SET @SQL = ‘Insert into #temp_table SELECT * FROM OpenQuery(linked_olap,»’+@MDX+»’)’;

— Execute the SQL and remote MDX query
EXEC (@SQL) ;

— Select the results from the temporary table to return to the calling program
Select column1, column2 from #temp_table ;

— Drop the temporary table
drop table #temp_table;

— Release the TRUSTED connection
exec sp_droplinkedsrvlogin ‘linked_olap’, NULL ;

— Release the link to the Analysis Server
exec sp_dropserver ‘linked_olap’ ;

mssql_connect

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_connect — Открывает соединение с MS SQL server

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

Описание

mssql_connect() устанавливает соединение с MS SQL server.

Подключение к серверу будет закрыто как только будет завершено выполнение скрипта, если его не закрыть раньше с помощью функции mssql_close() .

Список параметров

Сервер MS SQL. Может также включать номер порта, например hostname:port (Linux), или hostname,port (Windows).

Если mssql_connect() будет вызвана повторно с теми же аргументами, то нового соединения создано не будет, а ,вместо этого, будет возвращен уже существующий идентификатор подключения. Этот параметр изменяет такое поведение, и заставляет mssql_connect() всегда создавать новое соединение, даже если mssql_connect() была вызвана ранее с такими же параметрами.

Возвращаемые значения

Возвращает идентификатор соединения с MS SQL в случае успеха, или FALSE при ошибке.

Список изменений

Примеры

Пример #1 Пример использования mssql_connect()

при использовании нестандартного порта
$server = ‘KALLESPCSQLEXPRESS’ ;

// Подключение к MSSQL
$link = mssql_connect ( $server , ‘sa’ , ‘phpfi’ );

if (! $link ) <
die( ‘Something went wrong while connecting to MSSQL’ );
>
?>

Смотрите также

  • mssql_close() — Закрывает соединение с MS SQL Server
  • mssql_pconnect() — Открывает постоянное соединение с MS SQL

User Contributed Notes 40 notes

If someone encounters the interesting problem in which PHP can connect to a MSSQL server from the command line but not when running as an Apache module: SELinux prevents Apache (and therefore all Apache modules) from making remote connections by default.

This solved the problem in CentOS:
# setsebool -P httpd_can_network_connect=1

If you use PHP on Windows with Apache as a web server, you may get problems with authentication to MS SQL Server even when you supply all valid credentials.

Check your php.ini file:
; Use NT authentication when connecting to the server
mssql.secure_connection = On

If you have secure_connection = On, make sure that you provide valid credentials in the properties for Apache service in the System Services box. Then you should not send DB username and password from your script to MSSQL Server.

If you want to use specific credentials from a PHP script, then set mssql.secure_connection = Off in your php.ini

Cent OS — Remote SQL server connection
$link = mssql_connect(72.xx.xxx.xxx, username, password);

If you are not getting success, please check

There is certainly a php-mssql package available in the extras repository so just a `yum install php-mssql` should sort that out — it pulls in freetds as a dependency too. If you already have those installed but it doesn’t seem to be connecting, the one possibility is that you are being blocked by SELinux. To check that run

# getsebool -a | grep httpd_can_network_connect
httpd_can_network_connect —> on
httpd_can_network_connect_db —> on

and to enable them if they are not on, do

setsebool -P httpd_can_network_connect 1
setsebool -P httpd_can_network_connect_db 1

The following method: serverinstance
does’nt work on unix systems.

An instance is nothing more than specific port address different than 1433. so just discover the port on mssql server and then try to connect using:

In unix the port is specified by : not by ,

For anyone who have to connect to crappy SQL SERVER with \computer_nameinstance_name and failed to connect. There are couple of thing you need do.

1). There’s no needs to install SQL client software in your app server. This would keep your server clean.
2). run cliconfg.exe setup alias in case you needed
3). last and most important, do NOT use ntwdblib.dll came with PHP 4.4.x. It’s not most current. The version I’m using is: 8.00.194 with 274,489 Bytes. And make sure you put this file in your system32 folder.

For those trying to connect PHP 5.2 to a 2005 Microsoft SQL Server Analysis Services (SSAS) cube and execute MDX queries, you have to establish a link via a trusted connection from the Database Service to SSAS using a stored procedure, then execute the stored procedure via PHP.

Читать еще:  Функции в matlab примеры

Here is an example stored procedure that retrieves records from the Adventure Works sample cube that ships with SSAS.

From SQL Server Query Analyzer, you could test it as:

From PHP, you would execute something like the following:

$resultset = mssql_query(«exec testMDX»,$res_id);

then loop thorugh the result set.

— STORED PROCEDURE BEGIN

set ANSI_NULLS ON — Must be enabled at time Stored Proc is created
set QUOTED_IDENTIFIER ON — Must be enabled at time Stored Proc is created
GO

Create Procedure [dbo].[testMDX]
as
BEGIN
SET ANSI_WARNINGS ON: — Must be enabled
SET ANSI_NULLS ON; — Must be enabled

Declare
@SQL varchar(1200), — Variable to hold SQL query
@MDX varchar (1000), — Variable to hold MDX query
;

— Establish a link to Analysis Server
exec sp_addlinkedserver
@server=’linked_olap’, — Alias used to reference the link
@srvproduct=», — Not used
@provider=’MSOLAP.3′, — OLAP driver
@datasrc=’servername’, — Database server name
@catalog=’Adventure Works DW Standard Edition’ — Database name
;

— Analysis Server requires a TRUSTED connection
exec sp_addlinkedsrvlogin
@rmtsrvname = ‘linked_olap’, — Alias used to reference the link
@useself = ‘false’, — Use own credentials
@locallogin = NULL, — Apply to all local logins
@rmtuser = ‘domainusername’, — Remote user name
@rmtpassword = ‘xyz123’ — Remote user password
;

— Create a temporary table that will be used to hold the MDX output
create table #temp_table (column1 text null, column2 text null);

— Setup a string to hold the MDX so that the precompiler does not try to validate the syntax
SET @MDX = ‘SELECT [Product].[Category].members ON ROWS,
ON COLUMNS
FROM [Adventure Works] ‘ ;

— Setup a string to insert the MDX results into the temporary table
SET @SQL = ‘Insert into #temp_table SELECT * FROM OpenQuery(linked_olap,»’+@MDX+»’)’;

— Execute the SQL and remote MDX query
EXEC (@SQL) ;

— Select the results from the temporary table to return to the calling program
Select column1, column2 from #temp_table ;

— Drop the temporary table
drop table #temp_table;

— Release the TRUSTED connection
exec sp_droplinkedsrvlogin ‘linked_olap’, NULL ;

— Release the link to the Analysis Server
exec sp_dropserver ‘linked_olap’ ;

Подключения к MSSQL скрипта коннекта.

Всем привет. Проблема в том, что есть движок сайта, есть MSSQL x64 bit 2005, и проблема в том что php машина не хочет получать доступ к MSSQL. Полез я в php.ini, расскоментировал строку extension=php_mssql.dll потом активировал mssql.secure_connection = On и все-равно не хочет подключаться к MSSQL серверу при входе на сайт пишет

Fatal error: Call to undefined function mssql_connect() in C:AppServwwwfunction.php on line 46

Подскажите пожалуйста что делать? В чем ещё может быть проблема ?

Ошибка коннекта к MSSQL
Вопрос, наверное, задавали 100500 раз, но все же, не могу приконнектиться к бд MSSQL. Честно.

Нет коннекта PHP и MSSQL
Всем привет! Возникла одна проблема. Есть личный кабинет для игры RF ONLINE и есть базы MSSQL.

Форма подключения к MSSQL
Доброго времени суток. Создаю форму подключения к MSSQL, через ADOConnection. procedure.

запуск скрипта в MSSQL
Нужно запустить в MSSQL огромный скрипт, который построен так drop table a create table a .

Стоит Windows 7. Вот что находится в этой строчке 46:

Доброго времени суток!
Таже проблема, есть мс скл, есть вертриго серв. Пытаюсь подключить таким образом.

что вообщем то одно и тоже, но думал мало ли есть разница, все время пишет

Fatal error: Call to undefined function mssql_connect() in C:Program FilesVertrigoServwwwtestindex.php on line 13

на этой строчке у меня

zalax, Да бред все эти статьи. Скачайте фаил ntwdblib.dll. Киньте его в C:WindowsSystem32

Потом вместо $host=»localhost»; введите $host=»Имя вашего компьютера»; Я поставил имя своего компа X-Files и вуаля заработало.

У меня тоже такая же проблема. Хочу подключиться к БД «rasp» при помощи СУБД MS SQL Server 2008. php ругается и выдаёт строку: Call to undefined function mssql_connect() in C:wampwwwraspsql.php on line 6.

Учётная запись с логином andrey и паролем 12345 создана в MS SQL Server. Для решения проблемы сказано: MSSQL-расширение подключается добавлением строки extension=php_mssql.dll в файл php.ini. А я этот файл в папке установки я не могу найти Где его искать?
Пользуюсь WAMP, а версия PHP Expert Editor — 4.3.
Помогите пожалуйста!

Добавлено через 26 минут
Расскоментировал строку extension=php_mssql.dll потом активировал mssql.secure_connection = On. Все равно выдаёт ту же ошибку, что функцию не знает

Добавлено через 3 часа 8 минут
Проблема решена, но она была шире. Были проделаны действия, приводившиеся выше + проблема заключалась в MS SQL Server (ошибка в свойствах Security: Server authentication) + расширения PHP.
Решил проблему не один, но она благополучно решилась! ))

Подключение к базе данных в PHP через mysql, pdo и mysqli

Прежде чем подключиться к MySQL серверу необходимо определиться с PHP расширением, которое будет использоваться для работы с базой данных. Под расширением понимается драйвер — посредник между сервером базы и программистом. Он содержит набор функций или объектов, которые упрощают работу программиста. На данный момент выделяют 3 основных расширения.

  • MySQL;
  • MySQLi;
  • PDO.

Все 3 расширения являются стандартным набором для любой хорошей хостинг-площадки. Однако, по умолчанию некоторые могут быть отключены в настройках PHP модулей. Информацию о включенных модулях возвращает функция «phpinfo» с параметром «8».

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

Доступность модуля можно определить с помощью простой конструкции в коде.

Подключение к MySQL через одноименное расширение

Расширение MySQL появилось первым и долгое время не имело конкурентов. Сейчас считается устаревшим и в серьезных проектах не используется. На это есть ряд причин, основными из которых являются плохая оптимизация и безопасность, отсутствие многопоточности. Несмотря на это, оно ещё долго будет поддерживаться большинством хостингов.

Начиная с PHP версии 5.5 многие функции расширения стали устаревшими, а в PHP 7 и вовсе не поддерживаются.

Рассмотрим пример подключения к базе данных с комментариями.

В качестве запросов используется стандартный SQL. Рассмотрим простые примеры выборки и добавления записей.

В примере производим простую выборку записей из таблицы «books». Результат представлен в качестве ассоциативного массива, поэтому его содержимое можно получить в обычном цикле. Если запрос не возвращает набор данных, то в качестве результата возвращается «false» или «true».

Отличие MySQLi от MySQL

MySQLi пришло на смену MySQL. Буква «i» обозначает улучшенный (Improved). Имеет частичную совместимость со старой версией. Поддерживается всеми версиями PHP. Имеет чуть большую скорость работы и лучшую безопасность. Установлено на 99% хостинговых площадках.

Одной из важных особенностей является наличие объектно-ориентированного интерфейса. Если раньше работы с базой данных осуществлялись при помощи интерфейса функций, то теперь можно использовать оба подхода. Рассмотрим пример подключения к базе данных через MySQLi средствами «ООП».

Так осуществляется простая выборка названий книг из поля «BName» таблицы «books». Вставка и обновление существующих записей так же не отличается сложностью.

В конце запроса осуществляем проверку, удалось ли обновить запись.

Подключение к базе через PDO

PDO — расширение для PHP, которое расшифровывается как PHP Data Objects. Его особенностью является повышенная безопасность и универсальный интерфейс работы с различными базами данных. Другими словами, если с помощью MySQLi можно создавать запросы только для MySQL сервера, то PDO позволяет работать с различными серверами используя один и тот же синтаксис запросов. Это удобно если разработчик заранее не знает под управлением какого сервера будет работать конечный продукт.

У PDO есть свой механизм соединения с базой данных — «DSN» (Data Source Name). Кроме адреса сервера, логина и пароля, он должен принять тип базы данных. Посмотрим пример подключения.

Точно так же осуществляются и другие действия с записями и таблицами. Только меняем SQL запрос и вызываем выполнение методом «exec».

Метод «exec» в отличии от «query» не может получать данные из базы данных. Он возвращает количество записей, которые были затронуты в результате работы SQL запроса.

PHP Подключение к MySQL

PHP 5 и более поздние версии могут работать с базой данных MySQL, используя:

  • Mysqli расширение («i» означает улучшение)
  • PDO (объекты данных PHP)

Более ранние версии PHP использовали расширение MySQL. Тем не менее, это расширение было устаревшим в 2012.

Должен ли я использовать mysqli или PDO?

Если вам нужен короткий ответ, это будет «все, что вам нравится».

Оба mysqli и PDO имеют свои преимущества:

PDO будет работать на 12 различных системах баз данных, в то время как mysqli будет работать только с базами данных MySQL.

Таким образом, если вам нужно переключить ваш проект на использование другой базы данных, PDO делает процесс легким. Необходимо только изменить строку подключения и несколько запросов. С mysqli вам потребуется переписать все включенные в код запросы.

Оба являются объектно-ориентированными, но mysqli также предлагает процедурный API.

Оба поддерживают подготовленные заявления. Подготовленные операторы защищают от внедрения SQL и очень важны для безопасности веб-приложений.

Примеры MySQL как в mysqli, так и в синтаксисе PDO

В этом, и в следующих главах мы показываем три способа работы с PHP и MySQL:

  • MySQLi (объектно-ориентированный)
  • MySQLi (Процедурные)
  • PDO

MySQLi установка

Для Linux и Windows: mysqli расширение автоматически устанавливается в большинстве случаев, когда PHP5 MySQL пакет установлен.

Установка PDO

Для получения сведений об установке перейдите по: http://PHP.NET/Manual/EN/PDO.Installation.php

Открыть подключение к MySQL

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

Пример (mysqli объектно-ориентированный)

PHP является удивительным и популярным языком!

Обратите внимание на объектно-ориентированный пример выше: $Connect _еррор был сломан до PHP 5.2.9 и 5.3.0. Если необходимо обеспечить совместимость с версиями PHP до 5.2.9 и 5.3.0, используйте следующий код:

Проверить соединение
If (мискли_коннект_еррор ()) <
Die («сбой подключения к базе данных:». мискли_коннект_еррор ());
>

Пример (mysqli процедурный)

Пример (PDO)

Обратите внимание, что в примере PDO выше мы также указали базу данных (MyDB). PDO требуется действительная база данных для подключения. Если база данных не указана, создается исключение.

Совет: Большое преимущество PDO состоит в том, что он имеет класс исключений для обработки любых проблем, которые могут возникнуть в наших запросах к базе данных. Если в блоке try <> создается исключение, сценарий прекращает выполнение и перетекает непосредственно в первый блок catch () <>.

Закройте соединение

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

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