Datenbank einbindung funktioniert nicht

Alles, was PHP betrifft, kann hier besprochen werden.

Datenbank einbindung funktioniert nicht

Postby Hennes.W » 28. January 2005 18:41

Ich habe eine wochenplan.php mit einem include
Code: Select all
<?php
include ("../scripts/function_data.php");

  $res = odbc_prepare($odbc, "select * from tbl_eintopf where tag='montag'");
  odbc_execute($res);
  while($row = odbc_fetch_row($res))
  {
    $adatum = odbc_result($res,9);
    $adatum = date_mysql2german($adatum);
  }
  $res = odbc_prepare($odbc, "select * from tbl_eintopf where tag='freitag'");
  odbc_execute($res);
  while($row = odbc_fetch_row($res))
  {
    $edatum = odbc_result($res,9);
    $edatum = date_mysql2german($edatum);
  }
  $res = odbc_prepare($odbc, "select * from tbl_beilage");
  odbc_execute($res);
  while($row = odbc_fetch_row($res))
  {
    $b1 = odbc_result($res,3);
    $b2 = odbc_result($res,5);
    $b3 = odbc_result($res,7);
    $de = odbc_result($res,9);
    $ff = odbc_result($res,11);
  }
  $res = odbc_prepare($odbc, "select * from tbl_tagesgericht");
  odbc_execute($res);
  while($row = odbc_fetch_row($res))
  {
    $t1 = odbc_result($res,3);
    $t2 = odbc_result($res,5);
    $t3 = odbc_result($res,7);
  }
  $res = odbc_prepare($odbc, "select * from tbl_salat");
  odbc_execute($res);
  while($row = odbc_fetch_row($res))
  {
    $se = odbc_result($res,3);
    $st = odbc_result($res,5);
    $sb = odbc_result($res,7);
  }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title> ...und so weiter ...

Die function_data.php sieht so aus
Code: Select all
<?php
echo "<link rel=stylesheet type=text/css href=../../essbar.css>";

include ("../scripts/connection_data.php");

function date_mysql2german($datum)
{
  list($jahr, $monat, $tag) = explode("-", $datum);
   return sprintf("%02d.%02d.%04d", $tag, $monat, $jahr);
}

?>

und bindet die Datenbank(connection_data.php) ein
Code: Select all
<?php
  /* Hier muessen die Datenbank-Server-Daten eingetragen werden! */
  $odbc_dsn = "ccessbardb";    /* Server, meistens localhost */
  $odbc_user   = "";             /* Benutzername fuer Datenbank */
  $odbc_passwd = "";            /* Password fuer Datenbank */
  $odbc_name   = "ccessbardb";            /* Name der Datenbank */
  global $odbc;
  /* Verbindung zum Datenbank-Server */
  $odbc = @odbc_connect($odbc_dsn, $odbc_user, $odbc_passwd) or die(mysql_error());
?>

Wenn ich die Seite wochenplan.php aufrufe bekomme ich eine leere Seitemit dem Quelltext
Code: Select all
<link rel=stylesheet type=text/css href=../../essbar.css>

und sonst nichts.

Ich finde den Fehler nicht.

Achso die Datenbank heißt essbar.mdb und liegt unter "Stammverzeichnis/db/essbar.mdb".

H I L F E !
Gruß

Hennes.W
User avatar
Hennes.W
 
Posts: 5
Joined: 28. January 2005 12:44

Postby Wiedmann » 28. January 2005 19:09

$odbc = @odbc_connect($odbc_dsn, $odbc_user, $odbc_passwd) or die(mysql_error());

Ich vermute jetzt einfach mal, dass dein Script an dieser Stelle im die() abbricht, weil der odbc_connect() nicht funktioniert (einen mögliche Fehlermeldung von diesem unterdrückst du ja mit dem "@"). mysql_error() kann natürlich nichts zurückliefern (es wird ein leerer Stering ausgeliefert), weil du ja zuvor keine MySQL- sondern ODBC-Funktionen benutzt hast.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Hennes.W » 28. January 2005 20:18

Ich habe mal das "@" enfernt und bekomme dann folgende Fehlermeldung:
Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben, SQL state IM002 in SQLConnect in C:\PHP-Server\xampp\htdocs\pfeiffers-essbar\scripts\connection_data.php on line 9


Wenn ich meine ODBC-Treiber aktualisiere müsste demnach doch der Fehler verschwinden, oder?

Nochwas, muß bei Datenbankname nicht "essbardb" hin statt "ccessbardb"?
Und Server? Muß da auch was anderes hin?
Gruß

Hennes.W
User avatar
Hennes.W
 
Posts: 5
Joined: 28. January 2005 12:44

Postby Wiedmann » 28. January 2005 20:51

Wenn ich meine ODBC-Treiber aktualisiere müsste demnach doch der Fehler verschwinden, oder?

Eher nicht.

Nochwas, muß bei Datenbankname nicht "essbardb" hin statt "ccessbardb"?

Denke nicht, die Variable wird in deinem Script sowieso nirgends mehr benutzt.

Und Server? Muß da auch was anderes hin?

Das kannst dir aussuchen... Du brauchst halt in deiner ODBC-Konfiguration (in Win) einen System-DNS Eintrag, der mit dem dort angegebenen Namen übereinstimmt.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to PHP

Who is online

Users browsing this forum: No registered users and 14 guests