1

すべての行をjsonでエンコードしたい複数の行を持つテーブルがあります。

私は他の質問と解決策を探していて、さまざまなアプローチを試しましたが、json_encode はまだ null を返します

<?php
    $mysqli = new mysqli('localhost', 'root', 'password', 'testBasParmak');

    /* check connection */
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }
    $sth = mysql_query("SELECT * FROM pictures");
    $rows = array();
    while($r = mysql_fetch_assoc($sth)) {
        $rows[] = $r;
    }
    print json_encode($rows); 

    $error = json_last_error();
    print  $error;

$mysqli->close();

?>

ターミナルでの出力は

[]0

これを試したら

$sth = mysql_query("SELECT * FROM pictures");
    $rows = array("id" => $id,"name" => $name,"description" => $description,"url" => $url,"users_id" => $users_id,"users_id" => $users_id,"totalvoteup" => $totalvoteup,"totalvotedown" => $totalvotedown,"totalvoteneutral" => $totalvoteneutral);
    while($r = mysql_fetch_assoc($sth)) {
        $row[] = $r;
    }
    print json_encode($rows); 

    $error = json_last_error();
    print  $error;

ターミナルでの出力は

{"id":null,"name":null,"description":null,"url":null,"users_id":null,"totalvoteup":null,"totalvotedown":null,"totalvoteneutral":null}0

正しいクエリを送信していない可能性がありますか?

4

2 に答える 2

3

$row[] = $r;

する必要があります

$rows[] = $r;

于 2012-07-02T07:50:20.300 に答える
0

最後に、私のデータベース接続は mysqli であるという答えが見つかりましたが、私のクエリSELECT *は mysql です。変更する必要があったのは、mysql コマンドを mysqli にすることだけでした。

$sth = $mysqli->query("SELECT * FROM pictures");
    $rows = array();
    while($r = mysqli_fetch_assoc($sth)) {
        $rows[]=$r;
    }
    print json_encode($rows); 

正しい出力を与える

["id":"2","name":"Jess","description":"who","url":"www","users_id":"705735067","totalvoteup":"0","totalvotedown":"0","totalvoteneutral":"0"},{"id":"3","name":"Jess","description":"who","url":"www","users_id":"705735067","totalvoteup":"0","totalvotedown":"0","totalvoteneutral":"0"},{"id":"4","name":"Jess","description":"who","url":"www","users_id":"705735067","totalvoteup":"0","totalvotedown":"0","totalvoteneutral":"0"}]
于 2012-07-02T08:28:17.413 に答える