• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Prepared Statements Windows/Linux

Rayse

Mitglied
N'abend,

weiß jemand warum mein Code auf meiner lokalen XAMPP Installation (Windows) läuft, auf meinem Server (Linux) aber nicht?

PHP:
if ($stmt = mysqli_prepare($db, "SELECT ausgaben.id, ausgaben.date, ausgaben.userid, ausgaben.type, ausgaben.costs, users.username FROM ausgaben AS ausgaben LEFT JOIN users AS users ON (ausgaben.userid = users.id) ORDER BY ausgaben.date ASC")) {
            mysqli_stmt_execute($stmt);
        $result = mysqli_stmt_get_result($stmt);
        while ($row = mysqli_fetch_array($result)) {
          $date = date_create($row['date']);
          echo '<div class="row">';
          echo '<div class="col-md-3">' . date_format($date, 'd.m.Y') .'</div>';
          echo '<div class="col-md-3">' . $row['username'] .'</div>';
          echo '<div class="col-md-3">' . costs_type($row['type']) .'</div>';
          echo '<div class="col-md-3">' . number_format($row['costs'], 2,',', '.') .' &euro;</div>';
          echo '</div>';
        }

Gibt's da irgendwas zu beachten oder Unterschiede beim OS? Wunder mich etwas, sollte ja theoretisch funktionieren. PHP Version unterscheidet sich auch nur marginal.

Hab gedacht bevor ich da jetzt ewig rumprobier frag ich hier mal, vllt kennt das Problem ja jemand. :)

Gruß Rayse
 
Werbung:
Also wenn ich $result mit print_r($result) ausgebe, bekomme ich lokal ein Ergebnis, auf dem Server aber nicht. Ab da hängt das dann irgendwie bzw. ich hab keine Daten zum weiterverarbeiten.
 
Werbung:
Ich rate einfach mal: bist Du sicher, dass Du online die korrekten Datenbankverbindungsdaten verwendet hast? Die sollten dort andere sein als bei dir lokal.
 
Hehehe ja klar. :p
Der Code Ausschnitt gehört ja zu einem größeren Code welcher auch funktioniert. Nur diese SELECT prepared Statements wollen einfach nicht funktionieren...
 
Werbung:
Ja ist es in der tat. Habe allerdings das SQL Statement unabhängig vom PHP Script im phpmyAdmin getestet und es lieferte Daten. Daran scheint es also auch nicht zu liegen.

Wenn ich es ohne prepared teste, funktioniert es auch:

PHP:
                $sql = "SELECT ausgaben.id, ausgaben.date, ausgaben.userid, ausgaben.type, ausgaben.costs, users.username FROM ausgaben AS ausgaben LEFT JOIN users AS users ON (ausgaben.userid = users.id) ORDER BY ausgaben.date ASC";
           
            if ($result = mysqli_query($db, $sql)) {
          print_r(mysqli_fetch_array($result));
        }
 
Zuletzt bearbeitet:
Daran lag's wohl tatsächlich. Für die Nachwelt, habe das Problem jetzt folgendermaßen gelöst:

PHP:
$stmt->bind_result($dbId, $dbDate, $dbUserid, $dbType, $dbCosts, $dbUsername); 
        while ($stmt->fetch()) {
          $date = date_create($dbDate);
          echo '<div class="row">';
          echo '<div class="col-md-3">' . date_format($date, 'd.m.Y') .'</div>';
          echo '<div class="col-md-3">' . $dbUsername .'</div>';
          echo '<div class="col-md-3">' . costs_type($dbType) .'</div>';
          echo '<div class="col-md-3">' . number_format($dbCosts, 2,',', '.') .' &euro;</div>';
          echo '</div>';
        }

Ich danke euch beiden für die schnelle Hilfe! :)
 
Werbung:
Zurück
Oben