PHP ODBC Driver Connection til ekstern server

Tags:    php

Hej,

Jeg ønsker at oprette en ODBC driver connection til en server vha. PHP. Har prøvet lidt af hvert men uden succes.

Ønskes: Oprette forbindelse til en ekstern server "xx.yy.zz" - Har lavet et system DNS ved navn "WT" og testet connection med username og password, og det ser ud til at der er hul igennem. (Der kan hente data frem når der trykkes på "Connect")

Flg. PHP kode anvendt til at teste:

1)
<?php
$connect = @odbc_connect('WT', '', '') or die("Unable to connect");
?>

Response: Unable to connect

2)
if($conn = odbc_connect("WT", "", "")){
$db = mysql_select_db("tWkW9sUDLV5", $conn);
if( !$db ){
echo "Kunne ikke vælge databasen tWkW9sUDLV5!";
exit;
}
}
else {
echo "Der er ingen forbindelse til serveren";
die();
}

Response: Warning: odbc_connect() [function.odbc-connect]: SQL error: , SQL state 00000 in SQLConnect in C:\\Program Files\\xampp\\htdocs\\index.php on line 35
Der er ingen forbindelse til serveren

Har også prøvet at indtaste brugernavn og password i odbc_connect("WT", "UID", "PW"). Hvad gør jeg forkert?

Håber I kan hjælpe :)



Har du prøvet at sætte det således op:
$db_host = "********";
$db_user = "********";
$db_password = "********";
$db_name = "**********";

@$connection=mysql_connect("$db_host", "$db_user","$db_password") or header("Location: index.htm");
@$db=mysql_select_db($db_name ,$connection) or die ("Beklager men jeg kunne ikke forbinde til databasen.");
/*

Derudover så har jeg et par if ér i logon filen



Fold kodeboks ind/udKode 


http://dk2.php.net/odbc_connect

Og så lige en anden ting, når du bruger ODBC driveren til logge ind på databasen, skal du bruge MySQL driveren til nul og en fis.

Med mindre du skal have fat i MsAccess, MsSQL eller en tredie database kan du lige så godt bruge MySQLi, som er en opdateret udgave af MySQL driveren.



Indlæg senest redigeret d. 06.04.2008 23:44 af Bruger #10216
Hejsa!

Mange tak for jeres kommentarer :)

Per Rasmussen -> Det lykkedes desværre ikke. Får flg. fejlmeddelelse "Beklager men jeg kunne ikke forbinde til databasen."

Gnu -> Hvor finder jeg dokumentation på MySQLi driveren henne?

Men jeg er dog lidt i tvivl. Jeg prøver at forbinde til en webanalyse maskine, som har bla. MySQL kørende. På denne server oprettes der profiler, som hver især har deres egen database. Maskinen kører også en GUI, hvor folk kan logge på for at se deres stastik mv. Webanalyse maskinen har sin egen ODBC driver som skal installeres og konfigureres (som er gjort under System DNS og der er også hul igennem til profiler, når der trykkes connect).

Burde det ikke være nok? Jeg prøver godt nok at oprette forbindelse fra min egen laptop via localhost (Har xampp kørende). Eller er dette ikke muligt?







kig på php.net for MySQLi. http://www.php.net/mysqli_connect

Databasen kunne have restriktioner for hvad der kan forbinde til den. Typisk er den sat til localhost - altså det er kun maskinen selv der har adgang til den database der ligger på den.

Så du skal ud og konfigurere din database til at modtage opkoblinger fra eksterne maskiner.



OK, det må jeg så undersøge nærmere :)

Men har dog lige et sidespørgsmål - Nu er der X antal databaser for X antal profiler. I worst case skal jeg opretter X antal forbindelser for at kunne trække informationer ud. Kan det gøres smartere? Altså kan jeg via én connection for adgang til alle DB, i stedet for at connecte til hver enkel, ligesom nu fx. $db = mysql_select_db("tWkW9sUDLV5", $conn) ?





Alm. SQL tillader muligheden for noget lign.:

SELECT * FROM [database].[table]

Så i teorien burde det være muligt helt at undlade at køre en select_db. Men om det også passe i praksis skal jeg ikke kunne sige. Men igen det handler om restriktioner i din database.

Ellers kan du nok kode dig ud af det, ved at benytte et semi-intelligent objekt til at holde styr på hvilke tabeller der er i hvilke databaser og hvilke opkoblinger.

Du kan jo have flere forbindelser åbne til databasen, ved afvikling af et script.



Yes det har du selvfølgelig ret i. Jeg prøver at rode lidt med det, vender tilbage hvis der skulle være noget yderligere.

So far thanks!

:)



t