|
użytkowników online: 62
|
OPINIE UŻYTKOWNIKÓW
|
Gratulacje i dzięki! Trafiłem tu przypadkiem poszukując informacji na temat php+mysql. Wiele polskich stron powiela identyczne przykłady, klonuje te same kursy i lekcje... ten serwis okazał sie inny. Zasada "problem - rozwiazanie - wyjaśnienie" zdaje egzamin - zapewnia jasną, jednoznaczną i pewną pomoc w konkretnym przypadku. Porady są warte swojej ceny, przede wszystkim ze względu na przyjazną (także dla początkujących) formę i treść oraz bogate i stale powiększane zasoby. Polecam i pozdrawiam!
Kamil Dmowski
Polski Czerwony Krzyż
|
|
PODRĘCZNIK PHP 5.x, 4.x, 3.x - częściowo spolszczony / źródło: www.php.net
[Spis]
[A]
[B]
[C]
[D]
[E]
[F]
[G]
[H]
[I]
[J]
[K]
[L]
[M]
[N]
[O]
[P]
[Q]
[R]
[S]
[T]
[U]
[V]
[X]
[W]
[Z]
CXXVII. ODBC Functions (Unified)
In addition to normal ODBC support, the Unified ODBC functions in
PHP allow you to access several databases that have borrowed the
semantics of the ODBC API to implement their own API. Instead of
maintaining multiple database drivers that were all nearly
identical, these drivers have been unified into a single set of
ODBC functions.
The following databases are supported by the Unified ODBC
functions: Adabas D,
IBM DB2,
iODBC,
Solid, and
Sybase SQL Anywhere.
Notatka:
There is no ODBC involved when connecting to the above
databases. The functions that you use to speak natively to them
just happen to share the same names and syntax as the ODBC
functions. The exception to this is iODBC. Building PHP with iODBC
support enables you to use any ODBC-compliant drivers with your PHP
applications. iODBC is maintained by
OpenLink Software. More information on iODBC, as well as a
HOWTO, is available at www.iodbc.org.
To access any of the supported databases you need to have
the required libraries installed.
- --with-adabas[=DIR]
PHP 3, PHP 4: Dołącz obsługę Adabas D. DIR jest katalogiem gdzie
została zainstalowana baza Adabas, domyślnie /usr/local.
- --with-sapdb[=DIR]
Include SAP DB support. DIR is SAP DB base install directory,
defaults to /usr/local.
- --with-solid[=DIR]
PHP 3, PHP 4: Dołącz obsługę Solid. DIR to katalog instalacji
Solid, domyślnie /usr/local/solid
- --with-ibm-db2[=DIR]
PHP 3, PHP 4: Dołącz obsługę IBM DB2. DIR to katalog instalcji
DB2, domyślnie
/home/db2inst1/sqllib.
- --with-empress[=DIR]
PHP 3, PHP 4: Dołącz obsługę Empress. DIR to katalog instalacji
Empress, domyślnie $EMPRESSPATH.{From PHP 4, this option only supports
Empress Version 8.60 and above.}
- --with-empress-bcs[=DIR]
Include Empress Local Access support. DIR is the Empress base
install directory, defaults to $EMPRESSPATH. From PHP 4,
this option only supports Empress Version 8.60 and above.
- --with-birdstep[=DIR]
Include Birdstep support. DIR is the Birdstep base install directory,
defaults to /usr/local/birdstep.
- --with-custom-odbc[=DIR]
PHP 3, PHP 4: Dołącza obsługę niestandardowej biblioteki ODBC.
Parametrem jest główny katalog biblioteki, domyślnie
/usr/local.
Te opcja jest używana tylko jeśli zdefiniowałeś CUSTOM_ODBC_LIBS przy
uruchomieniu skryptu configure. Niezbędne jest także wstawienie
prawidłowego pliku odbc.h na ścieżkę include. Jeśli nie posiadasz takiego
pliku, stwórz go i dołącz stamtąd swój własny nagłówek. Twój nagłówek
może także wymagać pewnych definicji, zwłaszcza jeśli jest to biblioteka
wieloplatformowa. Zdefiniuj je w CFLAGS.
Na przykład możesz używać Sybase SQL Anywhere na QNX w następujący
sposób:
CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib
-lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50
- --with-iodbc[=DIR]
PHP 3, PHP 4: Dołącz obsługę iODBC. DIR jest to katalog instalacji
iODBC, domyślnie /usr/local.
Ta opcja została rozwinięta dla iODBC Driver Manager, darmowo
rozpowszechnianego menedżera sterowników ODBC który działa na różnych
odmianach Uniksa.
- --with-esoob[=DIR]
PHP 3: Opcja niedostępna w PHP 3
PHP 4: Dołącz obsługę Easysoft OOB. DIR to katalog instalacji
OOB, domyślnie /usr/local/easysoft/oob/client.
- --with-unixODBC[=DIR]
PHP 3: Opcja niedostępna w PHP 3
PHP 4: Dołącz obsługę unixODBC. DIR to katalog instalacji unixODBC,
domyślnie /usr/local.
- --with-openlink[=DIR]
PHP 3, PHP 4: Dołącz obsługę OpenLink ODBC. DIR to katalog
instalacji OpenLink, domyślnie /usr/local/openlink.
Od wersji 4.0.6 PHP ta opcja konfiguracji nie jest ważna. Jeśli chcesz
używać systemu ODBC firmy OpenLink Software, użyj opcji
--with-iodbc.
- --with-dbmaker[=DIR]
PHP 3: Opcja niedostępna w PHP 3
PHP 4: Dołącz obsługę DBMaker. DIR to katalog instalacji DBMakera
domyślnie tam, gdzie została zainstalowana najnowsza wersja DBMakera
(np /home/dbmaker/3.6).
{To disable unified ODBC support in PHP 3 add
--disable-unified-odbc to your configure
line. Only applicable if iODBC, Adabas, Solid, Velocis or a custom ODBC
interface is enabled.}
PHP w wersji dla systemów
Windows posiada wbudowaną obsługę dla tego rozszerzenia. Nie trzeba ładować
żadnych dodatkowych rozszerzeń aby korzystać z tych funkcji.
Na działanie tych funcji wpływają ustawienia zawarte w pliku
php.ini.
Tabela 1. Unified ODBC Configuration Options | Name | Default | Changeable | Changelog |
|---|
| odbc.default_db * | NULL | PHP_INI_ALL | | | odbc.default_user * | NULL | PHP_INI_ALL | | | odbc.default_pw * | NULL | PHP_INI_ALL | | | odbc.allow_persistent | "1" | PHP_INI_SYSTEM | | | odbc.check_persistent | "1" | PHP_INI_SYSTEM | | | odbc.max_persistent | "-1" | PHP_INI_SYSTEM | | | odbc.max_links | "-1" | PHP_INI_SYSTEM | | | odbc.defaultlrl | "4096" | PHP_INI_ALL | | | odbc.defaultbinmode | "1" | PHP_INI_ALL | |
Notatka:
Entries marked with * are not implemented yet.
Szczegóły i definicje dotyczące stałych
PHP_INI_* znajdują się w rozdziale Dodatek H.
Oto krótkie wyjaśnienie dyrektyw
konfiguracji.
- odbc.default_db
string
ODBC data source to use if none is specified in
odbc_connect() or
odbc_pconnect().
- odbc.default_user
string
User name to use if none is specified in
odbc_connect() or
odbc_pconnect().
- odbc.default_pw
string
Password to use if none is specified in
odbc_connect() or
odbc_pconnect().
- odbc.allow_persistent
boolean
Whether to allow persistent ODBC connections.
- odbc.check_persistent
boolean
Check that a connection is still valid before reuse.
- odbc.max_persistent
integer
The maximum number of persistent ODBC connections per process.
- odbc.max_links
integer
The maximum number of ODBC connections per process, including
persistent connections.
- odbc.defaultlrl
integer
Handling of LONG fields. Specifies the number of bytes returned to
variables.
Jeśli użyty zostanie typ
integer, wartość zostanie liczona w bajtach. Można także użyć
notacji skrótowej opisanej w FAQ. - odbc.defaultbinmode
integer
Handling of binary data.
To rozszerzenie nie posiada żadnych rodzajów zasobów.
Poniższe stałe są zdefiniowane w tym rozszerzeniu i stają się dostępne, gdy
rozszerzenie jest dokompilowane do PHP, lub załadowane dynamicznie przy starcie.
User Contributed Notesxangelusx at hotmail dot com
11-Nov-2005 04:45
If you receive an error stating "Connection is busy with results for another hstmt, SQL state S1000 in SQLExecDirect" try opening your odbc connection using the SQL_CURSOR_FORWARD_ONLY option
<?php
$db_link = odbc_connect($dsn, $username, $password, SQL_CURSOR_FORWARD_ONLY)
or die('Error connecting to server. Server says: '.htmlspecialchars(odbc_errormsg()));
?>
Quickdraw
05-May-2005 08:06
In response to Holger's comment about using @@identity:
Be carefull. If the table you're inserting into has a trigger that also inserts into another table that has an identity column you'll get the key of that other table! use scope_identity() instead of @@identity
05-May-2005 05:14
I searched for the solution of why odbc connection of a network remote drive under Windows + Apache 2.0.X, cannot give the query, but seems no one provides the solution.
In fact, it is very simple.
Go to Control Panal -> Services;
Find and double click "Apache2";
In the page of "Log On", choose Log on as "This account" and give an account in the web server system which have the right to control the network remote drive;
Finally, restart Apache, and that's it.
philip
08-Mar-2005 12:13
A good tutorial for odbc + php can be found here (written by the good folks at IBM Developer Works):
* http://tinyurl.com/3w8s4
denials at gmail dot com
24-Jan-2005 12:05
Ever wonder why you're experiencing really slow data retrieval times using IBM DB2 Universal Database for Linux, UNIX, and Windows? The default cursor type used by Unified ODBC is not supported by DB2, so it gets downgraded to a forward-only cursor -- and that negotiation occurs with every row fetch.
One way to force your PHP applications to use forward-only cursors is to modify your DB2 client configuration with a handy CLI patch2 setting value of 6:
$ db2 UPDATE CLI CONFIGURATION FOR SECTION dbname USING patch2 6
You have to update this client setting on the same machine on which you are running the PHP application. This works on Windows operating systems as well as on Linux & UNIX operating systems.
I ran a few basic benchmarks (fetch 10,000 rows consisting of 3 INTEGER columns from a remote database server) and concluded that this setting can make a major difference to your application speed:
Without CLI patch2 setting: ~22 seconds
With CLI patch2 setting: ~ 1.75 seconds
Note that the drawback of using this patch setting (or any other method of using forward-only cursors) makes odbc_num_rows() always return "-1" for the number of rows affected by a SELECT statement.
pascals at NOSPAM dot pobox dot com
28-Feb-2004 12:15
If the bundled ODBC library stumbles on some field formats (like some REAL from Pervasive.SQL), have a look at http://odbtp.sourceforge.net/.
After many headaches, I have adoped odbtp: it's a very solid library and best of all it's not tied to a particular OS.
vbwebprofi at gmx dot de
04-Nov-2003 01:31
On my search for a function to retriew the NewID of an inserted row wich has an autoincrement I found this solution like the mysql_insert_id for an ODBC connection to MS-Access :
<?
$Connection = odbc_connect(...);
$Result = odbc_exec($Connection, "select @@identity");
$NewID = odbc_result($Result, 1);
odbc_free_result($Result);
odbc_close($Connection);
?>
In my mind this should also work with MS-SQL-Server and with Sybase - via ODBC and direct (mssql_.../sybase_...).
HTH ...
Regards
Holger
b dot parish at no_spam dot linst dot ac dot uk
14-Aug-2002 05:46
dan dot polansky at seznam dot cz
02-Mar-2001 07:37
First I just repeat that examples are here:
http://php.weblogs.com/odbc
Second: Despite confusing remarks above, using unified ODBC functions you can really connect to any database for which you create DSN (Data Source Name). That is: using unified ODBC functions you can connect to _any_ database for which you have ODBC driver. Drivers exists or example Interbase, VisualFoxPro, DBase III,IV,V etc, many drivers are part of Win98 installation, other can be obtained from companies like EasySoft and Merant. ODBC is one of the most flexible ways for connecting to databases. This is because ODBC driver exist for almost every database there is. The question is, whether the driver is free. At least there are many 30 days trial versions of drivers.
|