Slyšel
jsem
,
že
lze
z
PHP
přistupovat
k
Microsoft
SQL
Serveru
.
Jak
?
Na
strojích
s
Windows
můžete
jednoduše
použít
zabudovanou
podporu
ODBC
a
správný
ovladač
ODBC
.
Na
Unixových
strojích
můžete
k
přístupu
na
Microsoft
SQL
Servery
použít
ovladač
Sybase-CT
,
protože
tyto
protokoly
jsou
(
alespoň
z
většiny
)
kompatibilní
.
V
Sybase
připravili
volnou
verzi
potřebných
knihoven
pro
Linux
.
Pro
jiné
Unixové
systémy
musíte
kontaktovat
Sybase
k
získání
správných
knihoven
.
Podívejte
se
také
na
odpověď
na
příští
otázku
.
Lze
přistupovat
k
databázím
Microsoft
Access
?
Ano
.
Pokud
pracujete
pod
Windows
9x
/
Me
nebo
NT
/
2000
,
všechny
potřebné
nástroje
již
máte
k
dispozici
-
můžete
použít
ODBC
a
ovladače
pro
ODBC
k
databázím
Microsoft
Access
.
Pokud
používáte
PHP
na
Unixu
a
chcete
komunikovat
s
databázemi
MS
Access
běžících
na
Windows
,
budete
potřebovat
ODBC
ovladače
pro
Unix
.
OpenLink
Software
má
unixové
ovladače
pro
ODBC
,
které
zde
vyhoví
.
Existuje
pilotní
program
,
kdy
si
můžete
stáhnout
zkušební
kopii
,
která
má
neomezenou
zkušební
dobu
;
ceny
komerční
verze
s
podporou
začínají
na
675
USD
.
Jinou
alternativou
je
použít
SQL
server
,
který
má
ODBC
ovladače
pro
Windows
a
použít
ho
k
uložení
dat
,
ke
kterým
pak
můžete
přistupovat
z
aplikace
Microsoft
Access
(
pomocí
ODBC
)
a
z
PHP
(pomocí
vestavěných
ovladačů)
,
nebo
použít
souborový
meziformát
,
kterému
rozumí
Access
i
PHP
(např
.
obyčejné
soubory
nebo
databáze
dBase
)
.
K
tomuto
bodu
Tim
Hayes
z
OpenLink
soiftware
píše
:
Použití
jiné
databáze
jako
meziformátu
není
dobrý
nápad
,
pokud
můžete
použít
ODBC
z
PHP
přímo
na
vaší
databázi
-
např
.
pomocí
ovladačů
od
OpenLink
software
.
Když
meziformát
použít
musíte
,
OpenLink
nyní
uvolnil
Virtuoso
(
virtuální
databázový
stroj
)
pro
WinNT
,
Linux
a
jiné
unixové
platformy
.
Navštivte
prosím
naši
website
a
zdarma
si
ho
stáhněte
.
|
Jednou
z
prověřených
možností
je
použít
MySQL
a
jeho
ODBC
ovladače
pro
Windows
a
synchronizace
databází
.
Steve
Lawrence
píše
:
-
Nainstalujte
si
na
svou
platformu
MySQL
podle
přiložených
instrukcí
.
Nejnovější
verzi
získáte
na
www.mysql.com
(
stahujte
z
nejbližšího
zrcadla
!
).
Není
třeba
žádná
zvláštní
konfigurace
kromě
toho
,
že
když
instalujete
databázi
a
konfigurujete
uživatelský
účet
,
měli
byste
do
pole
"
host
"
přidat
%
nebo
název
počítače
s
Windows
,
na
kterém
chcete
MySQL
spouštět
.
Poznamenejte
si
název
serveru
,
uživatelské
jméno
a
heslo
.
-
Stáhněte
si
ovladač
MyODBC
pro
Windows
ze
stránek
MySQL
.
Nejnovější
verze
je
myodbc-2_50_19-win95.zip
(
k
dispozici
také
verze
pro
NT
,
stejně
tak
i
zdrojový
kód
)
.
Nainstalujte
ho
na
počítač
s
Windows
.
Funkci
můžete
otestovat
pomocí
přiložených
utilit
.
-
Vytvořte
uživatelský
nebo
systémový
dsn
v
administrátoru
ODBC
,
umístěném
v
ovládacích
panelech
.
Zvolte
název
dsn
,
vložte
název
počítače
,
heslo
,
port
apod
.
pro
databázi
MySQL
nakonfigurovanou
v
kroku
1
.
-
Nainstalujte
plnou
instalaci
Accessu
,
což
zajistí
,
že
budou
k
dispozici
všechny
doplňky
;
budete
potřebovat
alespoň
podporu
ODBC
a
správu
propojených
tabulek
.
-
A
teď
to
nejzábavnější
!
Vytvořte
novou
databázi
v
Accessu
.
Klikněte
pravým
tlačítkem
v
okně
tabulek
a
vyberte
"
Propojit
tabulky"
,
nebo
pod
nabídkou
"Soubor
"
vyberte
"Načíst
externí
data
"
a
potom
"Propojit
tabulky
"
.
Až
se
otevře
dialog
,
vyberte
soubory
typu
ODBC
.
Zvolte
systémový
dsn
a
název
dsn
vytvořeného
v
kroku
3
.
Vyberte
tabulku
k
propojení
,
stiskněte
"
OK
"
a
je
to
"
!
Nyní
můžete
otevřít
tabulku
a
přidat
/
smazat
/
upravovat
data
na
vašem
MySQL
serveru
!
Můžete
také
vytvářet
dotazy
,
importovat
/
exportovat
tabulky
do
MySQL
,
vytvářet
formuláře
a
sestavy
atd
.
Tipy
a
triky
:
-
Můžete
vytvořit
tabulky
v
Accessu
,
exportovat
je
do
MySQL
a
potom
propojit
zpět
.
To
urychluje
návrh
tabulek
.
-
Když
vytváříte
tabulky
v
Accessu
,
musíte
mít
definován
primární
klíč
kvůli
zápisu
do
tabulky
.
Ujistěte
se
,
že
jste
primární
klíč
v
MySQL
vytvořili
před
propojením
do
Accessu
.
-
Pokud
změníte
tabulku
v
MySQL
,
musíte
ji
znovu
připojit
do
Accessu
.
Go
to
tools
add-ins
linked
table
manager
,
cruise
to
your
ODBC
DSN
,
and
select
the
table
to
re-link
from
there
.
you
can
also
move
your
dsn
source
around
there
,
just
hit
the
always
prompt
for
new
location
checkbox
before
pressing
ok
.
Upgradoval
jsem
na
PHP
4
a
MySQL
mi
teď
hlásí
"
Warning
:
Co
se
děje
?
Nejspíše
se
stalo
to
,
že
bylo
PHP
4
zkompilováno
s
volbout
'
--with-mysql
'
bez
specifikace
cesty
k
MySQL
.
To
znamená
,
že
PHP
používá
svoji
vestavěnou
klientskou
knihovnu
.
Pokud
na
vašem
systému
běží
aplikace
jako
PHP
3
(
jako
paralelně
běžící
modul
Apache
)
nebo
auth-mysql
,
používá
jiné
verze
klientů
MySQL
,
a
je
zde
tedy
konflikt
dvou
různých
verzí
těchto
klientů
.
Překompilování
PHP
4
s
přidáním
cesty
k
MySQL
do
parametru
,
'
--with-mysql=
/
your
/
path
/
to
/
mysql
'
,
obvykle
tento
problém
vyřeší
.
Po
instalaci
podpory
sdíleného
MySQL
havaruje
Apache
v
momentě
,
kdy
načítá
libphp4.so
.
Lze
to
vyřešit
?
To
se
stává
,
když
jsou
knihovny
MySQL
připojovány
s
použitím
pthreads
.
Ověřte
to
použitím
"
ldd
"
.
Pokud
tomu
tak
je
,
stáhněte
si
balík
MySQL
a
zkompilujte
zdrojové
soubory
,
nebo
překompilujte
soubory
z
RPM
balíku
a
odstraňte
přepínač
,
který
zapíná
threadový
kód
klienta
.
Jeden
z
těchto
způsobů
by
měl
problém
vyřešit
.
Potom
překompilujte
PHP
s
novými
knihovnami
MySQL
.
Proč
dostávám
chybu
,
která
vypadá
nějak
takto
:
"
Warning
:
0
is
not
a
MySQL
result
index
in
file
on
line
x
"
nebo
"Warning
:
Pokoušíte
se
použít
indentifikátor
výsledku
,
který
je
0
.
Nula
indikuje
,
že
váš
dotaz
z
nějakého
důvodu
selhal
.
Po
odeslání
dotazu
musíte
provést
kontrolu
na
chyby
,
dřív
než
se
pokusíte
použít
vrácený
indentifikátor
výsledku
.
Správný
způsob
,
jak
to
udělat
,
je
popsán
následujícím
kódem
:
or