Dieter Raber: mysql: Can't connect to local MySQL server through ...

Beitrag lesen

Hallo,

Ist aber egal, weil im gleichen Script nnoch eine weitere Abfrage ist, die problemlos läuft, sobald ich die "fehlerhafte" rausnehme.

Wenn Du ohnehin schon eine Connection hast, warum machst Du noch eine neue?
Sinnvoll waere es m.E. du wuerdest eine Datei nach folgendem Muster auslagern:

<?php
$db_host = "...";
$db_name = "...";
$db_user = "...";
$db_pass = "...";

function sql_error()
{
  print '<p>MySQL Error ' . mysql_errno() . ': ' . mysql_error() . '</p>';
}

mysql_connect($db_host,$db_user,$db_pass)or die ("Verbindung zum Server nicht möglich.");

mysql_select_db ($db_name)or die ("Verbindung zur Datenbank nicht möglich.");
?>

Diese Datei bindest du mir require_once in jede betroffene Datei ein.

Deine Abfragen kannst Du dann mit
mysql_query (...) or sql_error()
machen und erhaelst immer eine feine MySQL-Fehlermeldung, wenn was schiefgeht.
Allerdings musst Du darauf achten, dass du nach Abschluss der Entwicklung das 'print' aus der Funktion sql_error() auskommentierst.

Reine MySQL-Loesungen sind dann gut, wenn Du weisst, dass die Seite immer auf MySQL laufen wird. Bei einer Anwendung fuer ein Intranet, wo die Datenbank vielleicht nicht immer festzulegen ist, bist Du mit ADOdb http://php.weblogs.com/ADOdb oder der PEAR-DB-Klasse http://www.pear.php.net besser bedient. Auch mit Hinblick auf SQLite ist das sicher erwaegenswert. Wenn Deine Seite bei Puretec laeuft, wird es bis zur Einfuehrung von SQLite wohl noch eine ganze Zeit dauern, andere Hoster sind da etwas flinker mit ihren Updates.

Dieter