downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

mssql_query> <mssql_num_rows
Last updated: Fri, 13 Nov 2009

view this page in

mssql_pconnect

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

mssql_pconnect持続的 MS SQL 接続をオープンする

説明

resource mssql_pconnect ([ string $servername [, string $username [, string $password [, bool $new_link ]]]] )

mssql_pconnect()mssql_connect() とほとんど同じく動作しますが、違う点が 2 つあります。

第 1 に、この関数は接続時に同じホスト、ユーザ名、パスワードで既に オープンされている(持続的)リンクを探そうとします。 もし見つかった場合、新規の接続をオープンせずにその ID を返します。

第 2 に、SQL サーバはスクリプトの実行終了時に接続を閉じません。 代わりに、リンクは後に使用されるためにオープンされたままとします (mssql_close()mssql_pconnect() により確立されたリンクを閉じません)。

この型のリンクはこのため '持続的である' と呼ばれます。

パラメータ

servername

MS SQL サーバ。 hostname:port のようにポート番号を含めることもできます。

username

ユーザ名。

password

パスワード。

new_link

同じ引数で mssql_pconnect() が再度コールされた場合、 新規のリンクは作成されず、代わりに既にオープンされたリンク ID が返されます。 このパラメータは、この振る舞いを変更し、mssql_pconnect() が常に新しいリンクを返すようにします。同じパラメータで事前に mssql_pconnect() がコールされていたとしても、 新しいリンクを返します。

返り値

成功時に正の MS SQL 持続的リンク ID、エラー時に FALSE を返します。

例1 mssql_pconnect()new_link を使う例

<?php
// データベースサーバに接続します
$link1 mssql_pconnect('MANGO\SQLEXPRESS''sa''phpfi');
mssql_select_db('php'$link1);

// 新しいリンクを作成します
$link2 mssql_pconnect('MANGO\SQLEXPRESS''sa''phpfi'true);
mssql_select_db('random'$link2);
?>



mssql_query> <mssql_num_rows
Last updated: Fri, 13 Nov 2009
 
add a note add a note User Contributed Notes
mssql_pconnect
php at burntpopcorn dot net
11-Mar-2004 02:17
Please note that mssql_pconnect creates a connection for the pool for *each process*. If you have "ThreadsPerChild" set to 50 in apache, and mssql.max_procs set to 25 in php, then eventually you will get mssql_pconnect failing to give you a connection to the database. This has stumped me for quite a while, and the answer finally presented itself thanks to the people in #php.
dave at dontspamme dot com
10-Feb-2004 10:32
If you are running PHP/Apache combination on a Windows machine that is part of a domain, using NT Authentication to connect to a MS SQL Server, you must to do the following things:

1) Turn NT Authentication On (under MSSQL in php.ini)
2) Configure the Apache service to run as the user that is authorized to access the MS SQL server.

Hope this helps save someone the time that it took me to track down!
m1tk4 at hotmail dot com
17-Jul-2002 04:08
Be careful with pconnect!

Platform: RH Linux 7.3, PHP 4.2.1. FreeTDS.

pconnect does give you better time than connect (about 0.25-0.4 seconds gain) BUT:

- occasionally, I've experienced "quirks" when fetch() would randomly return empty recordsets from stored procedurest that can_not return empty recordsets by definition.

- if you restart MSSQL server while some of the connections did not time out, next pconnect() will not establish a new connection! It will return an old one, so next time you do execute() or query() your script will just _hang_ until timeouted by Apache.

All of the above I believe are FreeTDS problems, not PHP. I wonder if somebody with PHP+Sybase lib got pconnect to work.
php at rawhide dot cjb dot net
12-Jul-2001 01:18
One should not that persistent connections are not persistent under a CGI interface.

mssql_query> <mssql_num_rows
Last updated: Fri, 13 Nov 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites