php odbc access

Status
Niet open voor verdere reacties.

Earthfighter

Gebruiker
Lid geworden
5 sep 2012
Berichten
28
Hallo forum leden,

Ik ben de hele ochtend bezig om een verbinding te krijgen met één van de SQL servers op mijn werk.

De verbinding tussen Access en de server is gelukt. De DNS = MaxView.

Nu wil ik verbinding maken vanuit een PHP script. Heb een tutorial gelezen op w3schools. Ziet er makkelijk uit
$conn=odbc_connect('MaxView','FrancoisG','******'); enz

De volgende foutmelding krijg ik.
Warning: odbc_connect(): SQL error: [Microsoft][ODBC-stuurprogrammabeheer] De naam van de gegevensbron is niet gevonden en er is geen standaardstuurprogramma opgegeven, SQL state IM002 in SQLConnect in.

Nu vraag ik me sterk af. Heb ik een ODBC verbinding nodig tussen een Microsoft SQL server management systeem (servernaam:PTACOMMDR) en mijn script?
Of is mysql_connect(servername,username,password); genoeg? Ik denk het zelf niet want hier draait het om MYSQL.

Kunt iemand mij helpen?
Hoe moet ik mijn connectie maken. Ik wil records uit de sql database in een php script tonen.

alvast bedankt
 
Volgens de voorbeelden bij de documentatie moet je naast DSN, gebruikersnaam en wachtwoord ook een driver opgeven.
PHP:
<?php
// Microsoft SQL Server using the SQL Native Client 10.0 ODBC Driver - allows connection to SQL 7, 2000, 2005 and 2008
$connection = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;", $user, $password);

// Microsoft Access
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);

// Microsoft Excel
$excelFile = realpath('C:/ExcelData.xls');
$excelDir = dirname($excelFile);
$connection = odbc_connect("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=$excelFile;DefaultDir=$excelDir" , '', '');
?>
 
Laatst bewerkt:
Ik neem aan dat je niet DNS maar DSN bedoelt.
Indien ja: Bij een DSN hoef je de driver niet aan te geven, want die is al bekend.
[De voorbeelden van Naarling zijn DSN-less, dus connectie-strings die juist géén gebruik maken van de beschikare DSN.]
Verder op staat dit voorbeeld m.b.t. DSN-gebaseerde verbindingen:

PHP:
$conn  =  odbc_connect("DSN1","USER","PASSWORD");
echo  "conn:  $conn";
if  ($conn  <=  0)  {
        echo  "Error  in  connection";
        exit;
} else  {
        echo  "<P>Connection  successful\n";
};

Dus DSN1 vervangen door MaxView, USER vervangen door FrancoisG en PASSWORD vervangen door het bijbehorende wachtwoord.

Tijs.
 
Laatst bewerkt:
Ben er op dit moment nog steeds niet uit. Ik werk op mijn laptop. De server staat binnen dit intranet. Ik krijg gewoon geen contact met MaxView. Mijn collega zegt dat ik een directe verbinding kan maken. Dat heb ik ooit eens met mysql_connect gedaan. Dat is super makkelijk. Ik neem aan dat ik echt mijn ODBC moet gebruiken.

Dit is een link die mijn collega heeft gestuurd.
http://social.technet.microsoft.com....accessing-sql-server-databases-from-php.aspx

Heb het gevolgd maar tot nu toe zonder positieve gevolgen.
 
Zou niet verkeerd zijn als je inderdaad even laat zien welke extensions je geladen hebt in php.
Doorgaans te zien in php.ini

En ook te zien (als extra check) op een testpagina.php op je webserver als je het volgende php statement erin zet en dan aanroept in je browser:
PHP:
<?php phpinfo(); ?>

Tijs.
 
Heb op 3 verschillende manieren contact proberen te leggen met de microsoft sql database.

Eerste manier:
<?php

/*The function takes four parameters: the data source name, username, password, and an optional cursor type*/
$conn=odbc_connect('MaxView','',''); (weggehaald)
$sql="SELECT * FROM dbo_TR_PM_Project";
$rs=odbc_exec($conn,$sql);

/*Testing the connection. No connection=drop*/
if (!$conn);
{exit("Connection Failed: " . $conn);}

?>

2de manier:
<?php

$user = "sa";
$password = ""; (weggehaald)
$server = "MaxView";
$database = "fcAskAfrika_master";

// Microsoft SQL Server using the SQL Native Client 10.0 ODBC Driver - allows connection to SQL 7, 2000, 2005 and 2008
$connection = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;", $user, $password);

if (!$connection);
{exit("Connection Failed: " . $connection);}

$sql="SELECT * FROM dbo_TR_PM_Project";
$rs=odbc_exec($sql);
if (!$rs)
{exit("Error in SQL");}
echo $sql;

?>

3de manier:
<?php
$conn = odbc_connect("Maxview","sa","");
echo "conn: $conn";
if ($conn <= 0) {
echo "Error in connection";
exit;
} else {
echo "<P>Connection successful\n";
};
?>
 
Update: Xampp vertelt me dat "note that odbc support is build in.

extlist.gifDit zijn mijn extensions in de ext lijst

de laatste in het rijtje heb ik toegevoegd in php.ini
extension=php_bz2.dll
;extension=php_curl.dll
extension=php_mbstring.dll
extension=php_exif.dll
;extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mssql.dll
;extension=php_mbstring.dll
;extension=php_exif.dll ; Must be after mbstring as it depends on it
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pdo_sqlite_external.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
extension=php_sqlsrv_54_nts.dll
 
Laatst bewerkt:
Probeer eens gebruik te maken van de vervangende (nieuwe) functie sqlsrv_connect. Ik heb laatst ook een hele tijd zitten *****n om verbinding te kunnen maken met een SQL database vanuit PHP. Als je de extensie in WAMP aan de praat krijgt van SQLSRV dan kun je vervolgens verbinden met volgende code

$conn_info = array("UID" => $dbuser, "PWD" => $dbpass, "Database"=> $dbname);
// connect to MSSQl server
$conn = sqlsrv_connect( $trim_dbhost, $conn_info);

if(!conn)
var_dump(sqlsrv_errors());

P.s. Ik had er toen last van dat de extensie niet aan de praat wilde op x64 installatie van WAMP. Daarnaast gebruik ik nu x86 (32 bits) wamp met PHP 5.4.3.
Ik heb als bijlage de extensie voor WAMP zoals deze bij mij werkte gevoegd. Ik zie namelijk in jou extension lijst wel de sqlsrv extensie al staan maar ik weet niet of dat de goede is.

plaatsen in wamp/bin/php/php 5.4.3/ext

Dan inschakelen via WAMP icoon in je taskbar --> PHP -> extensions

Restart van je wamp services daarna kan nooit kwaad

Bekijk bijlage php_sqlsrv_54_ts.zip
 
Laatst bewerkt:
Php.net zag ik dit staan.
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

If you keep running into this on the 64 bit versions of windows, ie server 2008, and none of the other solutions helped.

In a 64 bit windows server operating system, there are TWO odbc managers. When you pull up the usual menu for the odbc / dsn system, it is for the 64 bit odbc manager, and 32 bit applications (vb 6.0, PHP 5) will not work using these dsn's.

This is where the 32 bit odbc manager is:

C:\Windows\SysWOW64\odbcad32.exe

Dus lag toch aan de 64 denk ik. Bedankt ktpzeiksnor.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan