0

我正在尝试为应用项目设置 API。

我有一个名为“用户”的 mysql 表,我在其中添加了一行。

使用代码:

// Create connection
$mysqli = new mysqli("localhost","user", "pass", "db");

// Check connection
if($mysqli->connect_errno){

    $result = "Failed to connect to MySQL: " . mysqli_connect_error();
    print_r( json_encode($result) );    
    return false;

}

$row = $mysqli->query("SELECT * FROM users");
print_r( json_encode($row) );

我得到一个空的结果,怎么会?(连接不会抛出错误)

确切地说,我得到:

{"current_field":null,"field_count":null,"lengths":null,"num_rows":null,"type":null}

编辑:

得到了原问题的答案,谢谢!

所以现在使用代码:

$row = $mysqli->query("SELECT * FROM users WHERE email = '".$email."'");
$result = $row->fetch_array();
print_r( json_encode($result) );

我得到结果:

{"0":"test","username":"test","1":"test@test.com","email":"test@test.com","2":"test","password":"test","3":"2013-10-18 22:22:53","date_registered":"2013-10-18 22:22:53","4":"1","id":"1"}

我想要的是这样的:

{"username":"test","password":"test","email":"test@test.com", ...etc }

我怎么得到那个?

4

2 回答 2

2

尝试这个:

$result = $mysqli->query("SELECT * FROM users");
$row = $result->fetch_array(MYSQLI_ASSOC);
print json_encode($row);   // json_encode returns a string...

试试这个为你的关联数组:

while($row = $result->fetch_array(MYSQLI_ASSOC))
{
   $rows[] = $row;
}
print json_encode($rows);

或者你可以试试...$rows = $result->fetch_all(MYSQLI_ASSOC);

于 2013-10-18T21:56:36.657 回答
1

mysqli_query()将返回一个mysqli_result,您需要先获取(在这种情况下作为一个数组)您的行,然后再对它们进行任何操作。添加了一行:

// Create connection
$mysqli = new mysqli("localhost","user", "pass", "db");

// Check connection
if($mysqli->connect_errno){

    $result = "Failed to connect to MySQL: " . mysqli_connect_error();
    print_r( json_encode($result) );    
    return false;

}

// Get a mysql_result
$row = $mysqli->query("SELECT * FROM users");

// Get it into an array without numeric indexes
$result = $row->fetch_assoc();

// Display the row
print_r( json_encode($result) );
于 2013-10-18T21:57:27.263 回答