2016-04-11 8 views
0

Ich habe das Gefühl, das ist ein Problem leicht zu beheben, aber ich kann die Antwort nicht finden. Ich versuche, einen bestimmten Wert aus meiner Datenbank zu erhalten und es dann auf den Bildschirm drucken, aber ich bekomme immer folgende Fehlermeldung:Wie bekomme ich einen bestimmten Wert von meiner Datenbank mit PHP

Object of class mysqli_result could not be converted to string 

Ich bin mir ziemlich sicher, dass es, weil ich eine ganze Reihe bin anfordernden statt ein Wert. Ich bin mir nur nicht sicher, wie ich es beheben soll, ich habe ein paar Optionen ausprobiert, aber nichts funktioniert. Mein Code:

Die Datenbanktabelle heißt 'texts' und hat 2 Spalten: 'id' 'waitlist_text'. Ich möchte den Text, das ist in der Spalte waitlist_text auf id 1

+0

Nach der Durchführung Ihrer [Abfrage] (http://php.net/manual/en/mysqli.query.php) müssen Sie [holen] (http: // php.net/manual/en/mysqli-stmt.fetch.php) Daten vom resultierenden Objekt. – showdev

+0

Verwenden Sie 'fetch_object' oder 'fetch_assoc' Methode für Ihr Ergebnis – ceadreak

+0

Mögliche Duplikate von [Objekt der Klasse mysqli \ _result konnte nicht in String konvertiert werden] (http: // stackoverflow.com/questions/21722375/object-of-class-mysqli-result-konnte nicht in string-in konvertiert werden) – showdev

Antwort

-1
<?php 
    $host = 'localhost'; 
    $user = 'root'; 
    $pass = ''; 
    $db = 'mydatabase'; 

    $connection = new mysqli ($host, $user, $pass, $db) or die ("Databse connection failed"); 
    $sql = "SELECT waitlist_text FROM texts"; 

    $waitlist_text = $connection->query($sql); 

    while($row = $waitlist_text->fetch_assoc()) { 
     echo $row["waitlist_text"]; 
    } 
?> 
+1

Warum wird diese Antwort akzeptiert über meiner? Es ist genau die gleiche Antwort mit dem einzigen Unterschied, dass diese Antwort überhaupt nichts erklärt. Dies repariert nur Code ohne jegliche Information. - Ich werde überprüfen, ob weitere Informationen hinzugefügt wurden. Wenn nicht, werde ich ablehnen müssen, da dies niemandem in meinen Augen wirklich hilft. – NoobishPro

+1

Sie haben Recht, aber nicht traurig sein, gab ich Ihnen die Abstimmung oben :) –

+1

Aber das ist schlechte Praxis ... Sie sollten lesen [PHP: The Right Way] (http://www.phptherightway.com/ #pdo_extension) –

2

Verwendung in dem die Bedingung, binden Parameter und führen zum Beispiel:

$sql = 'SELECT waitlist_text FROM texts WHERE id = :idparm'; 
$id = 1; 
$dbh = new PDO("mysql:host=$host;dbname=$db", $user, $pass); 
$sth = $dbh->prepare($sql); 
$sth->bindParam(':idparm', $id, PDO::PARAM_INT); 
$sth->execute(); 
$result = $sth->fetch(PDO::FETCH_ASSOC); 
print_r($result); 

oder:

while ($result = $sth->fetch(PDO::FETCH_ASSOC)) 
    echo $result['waitlist_text'];  
+1

Der einzige richtige Algorithmus, aber ohne ein Beispiel ist es kaum eine Antwort –

-1

Sie sind richtig, Sie werden immer alle Ergebnisse statt nur die, nach denen Sie suchen. Um das gewünschte Ergebnis zu erhalten, müssen Sie fetch_assoc() aufrufen, um das Array des ersten Ergebnisses zu erhalten. In diesem Fall wäre $row ein Array, das alle Werte enthält, die Sie unter den Indizes des Namens der Spalten ausgewählt haben, die Sie aus Ihrer Tabelle ausgewählt haben. Es würde wie folgt aussehen:

$row = $waitlist_text->fetch_assoc(); 
echo $row["waitlist_text"]; 
-1

echo $waitlist_text->fetch_row()[0] 

Per der PHP manual Versuchen. fetch_row Ruft die aktuelle Zeile als Array ab, dann können Sie das erste Element drucken, das Ihre waitlist_text sein wird.

3

Ja, führt die Abfrage in einem MYSQLI Objekt. Sie müssen tatsächlich eine andere MYSQLI Funktion verwenden, um zu diesen Daten zu gelangen.

Zum Beispiel:

<?php 
    $result = $connection->query($sql); 
    while($row = $result->fetch_rows()){ 
    print_r($row); 
    //In this case, you can acces results like this: echo $row[0]."<br/>"; 
    } 
    ?> 

http://php.net/manual/en/class.mysqli-result.php

die obige Quelle über das Thema für weitere Informationen. Es gibt viele Möglichkeiten, Werte zu erhalten, z. B. fetch_assoc() anstelle von fetch_row(). fetch_assoc() macht es Ihnen möglich, Ihre Felder zugreifen (in der gleichen while-Schleife wie zuvor) wie folgt aus: $row['columnname']

Bitte Beispiel # 1 von dieser Seite sehen und Ihre eigene Funktion, um es zu vergleichen. Es könnte Ihnen helfen zu lernen: http://php.net/manual/en/mysqli-result.fetch-row.php

Verwandte Themen