2017-11-09 24 views
0
<?php 
$q = intval($_GET['q']); 

$con = mysqli_connect('censored','censored','censored','db'); 
if (!$con) { 
    die('Could not connect: ' . mysqli_error($con)); 
} 

mysqli_select_db($con,"db"); 
$sql="SELECT message FROM messages WHERE code = '".$q."'"; 
$result = mysqli_query($con,$sql); 
$resultstring = (string)$result; 

echo $resultstring; 

mysqli_close($con); 
?> 

私は、ユーザーにクエリの結果をエコーし​​ようとしていますが、このPHPは、AJAXを通るとき、私はこのエラーを取得:私はすでに$を変換していますので、PHPはSQL結果を文字列に変換できませんか?

Recoverable fatal error: Object of class mysqli_result could not be converted to string in D:\xampp\htdocs\getmessage.php on line 12

は今、私はこのことを理解していません文字列に結果..ありがとう!

+5

](http://php.net/manual/en/mysqli.query.php#refsect1-mysqli.query-returnvalues)あなたはドキュメントで見逃しましたか? –

+0

* "私はすでに$結果を文字列に変換しているのでこれを理解できません" * ...あなたはできないので、エラーではありません。 – CD001

答えて

1

データ(RS)を配列に変換する必要があります。

$result = mysqli_fetch_assoc($result); 
print_r($result); 
2

mysqli_query()は文字列に変換できません。

parse to arrayにはmysqli_fetchを使用する必要があります。

例:すべてのmysqli_query

if ($result=mysqli_query($con,$sql)) 
    { 
    // Fetch one and one row 
    while ($row=mysqli_fetch_row($result)) 
    { 
    printf ("%s (%s)\n",$row[0],$row[1]); 
    } 
} 
1

まず、それが直接それが取得されますので、使用mysqli_fetch_assocを行うには値

$query = mysqli_query($con,$sql); 

を返さないデータベース 上でクエリを実行します連想配列としての結果行

$result = mysqli_fetch_assoc($query); 

次に、あなたが今、あなたの価値

$resultstring = $result['message']; 

を得ることができますので、あなたのコードは、あなたがmysqli_resultオブジェクトを取得します成功した場合に、クエリの結果として、この

<?php 
    $q = intval($_GET['q']); 

    $con = mysqli_connect('censored','censored','censored','db'); 
    if (!$con) { 
     die('Could not connect: ' . mysqli_error($con)); 
    } 

    mysqli_select_db($con,"db"); 
    $sql="SELECT message FROM messages WHERE code = '".$q."'"; 
    $query = mysqli_query($con,$sql); 
    $result = mysqli_fetch_assoc($query); 
    $resultstring = $result['message']; 

    echo $resultstring; 

    mysqli_close($con); 
?> 
+0

ありがとう、これは私の問題を幾分解決しました。私はChromeの開発ツールを使ってそれを調べると、結果は私に与えられますが、リクエストが行われたページにエコーが表示されません。ユーザーが見るようにエコーが出ると思いましたか? –

0

ようにする必要があります。受け取った行を取得する場合は、データの取得機能を使用します。

$result = mysqli_query($con,$sql); 
$resultstring = $result->fetch_row()[0]; 

参照ドキュメント:[結果セットから[フェッチ](http://php.net/manual/en/class.mysqli-result.php)INGレコードのビットmysqli_query & mysqli_result

関連する問題