2016-04-11 30 views
0

これは問題を解決するのが簡単だと感じましたが、答えが見つかりません。私は、データベースから特定の値を取得し、それを画面に印刷しようとしているが、私は次のエラーを取得しておいてください。PHPを使用してデータベースから特定の値を取得する方法

Object of class mysqli_result could not be converted to string 

私は、行全体を要求する代わりに、だからだとかなり確信しています価値。私はそれを修正する方法がわかりません、私はいくつかのオプションを試してみましたが、何も動作しません。私のコード:

<?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); 

    echo $waitlist_text 
?> 

データベーステーブルは 'texts'と呼ばれ、2つの列、 'id' 'waitlist_text'があります。私は1

+0

[クエリ](http://php.net/manual/en/mysqli.query.php)を実行した後、[fetch](http://)を実行する必要があります。 php.net/manual/en/mysqli-stmt.fetch.php)データを作成します。 – showdev

+0

あなたの結果に 'fetch_object'または 'fetch_assoc'メソッドを使用してください。 – ceadreak

+0

[クラスmysqli \ _resultのオブジェクトは、string inに変換できませんでした](http:// stackoverflow。com/questions/21722375/object-of-class-mysqli-result-could-be-to-string-in) – showdev

答えて

-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

私の上に?この答えが全く何も説明していないという唯一の違いが、まったく同じ答えです。これはまったく情報のないコードを修正するだけです。 - 追加情報が追加されたかどうかを確認します。もしそうでなければ、これは私の目の誰にも役立たないので、私はdownvoteする必要があります。 – NoobishPro

+1

あなたは正しいが、悲しいことではない、私はあなたにアップの投票をくれた: –

+1

これは悪い習慣である...あなたは[PHP:正しい道]を読むべきである(http://www.phptherightway.com/ #pdo_extension) –

2

使用条件、バインド・パラメータのidカラムwaitlist_text下のテキストのthatsを好きで、例えば を実行します:

$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); 

か:

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

唯一の適切なアルゴリズムですが、例はありませんがほとんど答えはありません –

-1

あなたが取得している正しいですあなたが探しているものの代わりにすべての結果を表示します。あなたが探している結果を得るには、fetch_assoc()を呼び出して最初の結果の配列を取得する必要があります。この場合、$rowは、テーブルから選択した列の名前のインデックスの下で選択したすべての値を含む配列になります。それは次のようになります。

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

PHP manualパー

echo $waitlist_text->fetch_row()[0] 

を試してみてください。 fetch_rowは配列として現在の行を取得し、次にwaitlist_textとなる最初の要素を印刷できます。

3

はい、クエリの結果はMYSQLIです。あなたは実際に別のMYSQLI関数を使用して前記データを取得しなければなりません。例えば

<?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

は、被験者の詳細については、上記のソースを参照してください。たとえば、fetch_row()の代わりにfetch_assoc()を使用するなど、値を取得する方法はさまざまです。あなたは(以前と同じwhileループで)あなたのフィールドにアクセスするため fetch_assoc()はこのようにそれを可能にする:$row['columnname']

このページの例#1を参照し、それに独自の機能を比較してください。 http://php.net/manual/en/mysqli-result.fetch-row.php

関連する問題