2016-04-09 6 views
0

ich auf this Tutorial arbeiten, die außer dieser Funktion perfekt funktioniert alles:Welche Funktion kann anstelle von get_result() verwendet werden, wenn die Mysql-Abfrage "SELECT * FROM ..." enthält?

public function getAllUserTasks($user_id) { 

    $stmt = $this->conn->prepare("SELECT t.* FROM tasks t, user_tasks ut WHERE t.id = ut.task_id AND ut.user_id = ?"); 
    $stmt->bind_param("i", $user_id); 
    $stmt->execute(); 
    $tasks = $stmt->get_result(); 
    $stmt->close(); 
    return $tasks; 

} 

Das Problem ist, wegen der get_result() Funktion, weil php diese Funktion nicht cPanel nicht unterstützen, ich viel gesucht in google und stackoverflow, aber es gab keine Antwort, die mir helfen könnte. Ich möchte nur eine Zeile, die genauso funktioniert wie die Funktion get_result(), um sie zu ersetzen.

Ich wäre sehr dankbar für jede Hilfe; Vielen Dank im Voraus :)

+0

Welche Version von PHP ist auf Ihrem Webserver installiert? – RomanPerekhrest

+0

@RomanPerekrest: Es ist 5.4.45 –

+0

auch 'mysqlnd' Treiber sollte korrekt installiert werden – RomanPerekhrest

Antwort

0

ich so das gleiche Tutorial erhalten stapeln, bevor einige Tage.

Nach ein paar Recherchen fand ich eine Lösung, unten erklärt, Es funktionierte für mich, aber nicht sicher für Sie versuchen.

public function getAllUserTasks($user_id) { 
$query = "SELECT t.* FROM tasks t, user_tasks ut WHERE t.id = ut.task_id AND  ut.user_id='". $user_id. "'"; 
if ($result = mysqli_query($this->conn, $query)) { 
    return $result; 
    mysqli_free_result($result); 
     } 
} 
+0

Ja Es funktioniert, danke für deine Antwort :) Ich habe mysqli_query in dieser Methode und auch in meiner DB_connection-Datei verwendet, also Es funktioniert gut. –

0

http://php.net/manual/en/mysqli-stmt.fetch.php

while ($result = $stmt->fetch()) { 
    var_dump($result); 
} 
+0

Danke für Ihre schnelle Antwort, aber leider funktioniert es nicht für mich. Ich habe versucht, das $ -Ergebnis in der JSON-Antwort in der Indexdatei zu drucken: $ result = $ db-> getAllUserTasks ($ user_id); $ response ['res'] = $ result; echoRespense (200, $ Antwort); Aber die Antwort lautete: "bool (true) bool (true) bool (true) {" res ": null}" tatsächlich dreht dieser Code das $ -Ergebnis auf NULL. –

+0

Die in der while-Schleife verwendete Ergebnisvariable wird zeilenweise abgerufen und Sie müssen das "aktuelle" $ -Ergebnis zu einem Array außerhalb der Schleife hinzufügen. Wie $ outer_result_array.push ($ result); innerhalb der Schleife. – user2429266

+0

Und vielleicht müssen Sie $ stmt-> bind_result ($ varname, $ varname_2, etc); Ich habe nicht mit mysqli gearbeitet, kann also nicht mehr helfen, als die Tutorials zu verlinken, die Ihnen eine funktionierende Lösung bieten sollten. – user2429266

Verwandte Themen