Honni: Mysql-Connect unter Windows

Hallo,

habe da ein Problem das ich aktuell nicht verstehe. Auf einer Windowsmaschine läuft ein PHP 4.3.11 welches per mysql_connect eine Verbindung zu einer entfernten mysql-db auf einer Linux-Maschine herstellt.

Dies klappt wie angenommen auch wunderbar. Ab und zu kommt es vor das die Linux-Maschine überlastet ist und db-abfragen blockiert sind etc.

hier der connect welcher vollkommen normal ist:

function sql_abfrage ($query) {
GLOBAL $ip,$us,$pw,$db;
$db = mysql_connect($ip,$us,$pw) or die ("datenbank nicht erreichbar");
if(!$db) die();
mysql_select_db($db);
return mysql_query($query);
}

Das heißt eigentlich das wenn der connect nicht zustande kommt das script sterben sollte. Das tut es in diesen speziellen Fällen dann aber leider nicht. Das Script erhält ein Ergebnis der Abfrage, das aber dann scheinbar leer ist. Das dumme ist über diese Abfrage wird ein Abgleich lokaler Daten mit Daten der DB durchgefühhrt. Irrtümlich sind dann lokal zu vile Daten vorhanden und werden entfernt. In der DB sind diese aber real noch vorhanden, so das diese nicht entfernt werden sollten.

Danach habe ich testweise mal eine weitere prüfung eingebaut:

$num_rows = mysql_num_rows($abfragedaten);
echo "anzahl: " . $num_rows . "\r\n";
if($num_rows <= 1)
{
 echo "wech";
 exit();

}

Es sieht also so aus, als ob ein Connect zustande kommen würde aber nicht die vollen Daten liefert. Das SQL-Statement ist hierbei aber jedesmal unverändert und seh schlicht z.B. "select a, b from tabelle where feld = 'wert'";

Hat jemand eine Idee was hier los ist? Mir ist im Moment schleierhaft was ich tun kann.

Dank Euch
Honni

  1. echo $begrüßung;

    function sql_abfrage ($query) {
    GLOBAL $ip,$us,$pw,$db;
    $db = mysql_connect($ip,$us,$pw) or die ("datenbank nicht erreichbar");

    Nebenbei: Wenn mysql_connect false zurückliefert stirbt das Script an diesem die().

    if(!$db) die();

    Diese Bedingung wird nie erfüllt, weil das Script in dem Fall bereits gestorben ist.

    mysql_select_db($db);
    return mysql_query($query);
    }

    Das heißt eigentlich das wenn der connect nicht zustande kommt das script sterben sollte. Das tut es in diesen speziellen Fällen dann aber leider nicht.

    Das liest sich so, als ob der Connect zwar geklappt hat,

    Das Script erhält ein Ergebnis der Abfrage, das aber dann scheinbar leer ist.

    aber nachfolgend ein Fehler aufgetreten sein könnte.

    Mir ist im Moment schleierhaft was ich tun kann.

    Frage zu jeder der obigen mysql-Funktionen ab, ob ein Fehler auftrat. Alle drei zeigen dies an, indem sie false zurückliefern. Die konkrete Fehlermeldung kann man mit mysql_error() abfragen. Lass dir diese Meldung anzeigen oder schreibe sie in eine Log-Datei. Weitergehende Behebungsmaßnahmen lassen sich erst nach Kenntnis der konkreten Meldung sinnvoll vorschlagen.

    echo "$verabschiedung $name";