对JSON问题的PHP MySQL查询响应进行编码
我基本上是在尝试调用一个MySQL查询并从服务器获取响应,我已经完成了这项工作,并且可以正常工作。现在我需要将响应编码为一个JSON数组(每行作为一个JSON对象,并将它们添加到一个JSON数组中) 我的代码:对JSON问题的PHP MySQL查询响应进行编码,php,mysql,json,google-app-engine,Php,Mysql,Json,Google App Engine,我基本上是在尝试调用一个MySQL查询并从服务器获取响应,我已经完成了这项工作,并且可以正常工作。现在我需要将响应编码为一个JSON数组(每行作为一个JSON对象,并将它们添加到一个JSON数组中) 我的代码: foreach ($db->query('SELECT * from mydb.UserTable') as $sqlresp) { $rows = array(); while($r = mysqli_fetch_assoc($sqlresp))
foreach ($db->query('SELECT * from mydb.UserTable') as $sqlresp) {
$rows = array();
while($r = mysqli_fetch_assoc($sqlresp)) {
$rows['users'][] = $r;
}
print json_encode($rows);
}
while($r = mysqli_fetch_assoc($sqlresp)) {
上面的代码给了我这个错误:
foreach ($db->query('SELECT * from mydb.UserTable') as $sqlresp) {
$rows = array();
while($r = mysqli_fetch_assoc($sqlresp)) {
$rows['users'][] = $r;
}
print json_encode($rows);
}
while($r = mysqli_fetch_assoc($sqlresp)) {
警告:mysqli_fetch_assoc()预期参数1为mysqli_结果,
排列
它指向这一行:
foreach ($db->query('SELECT * from mydb.UserTable') as $sqlresp) {
$rows = array();
while($r = mysqli_fetch_assoc($sqlresp)) {
$rows['users'][] = $r;
}
print json_encode($rows);
}
while($r = mysqli_fetch_assoc($sqlresp)) {
JSON数组中我需要的JSON对象:
foreach ($db->query('SELECT * from mydb.UserTable') as $sqlresp) {
$rows = array();
while($r = mysqli_fetch_assoc($sqlresp)) {
$rows['users'][] = $r;
}
print json_encode($rows);
}
while($r = mysqli_fetch_assoc($sqlresp)) {
大致上这就是结构
user
{
name: "john",
picture: "http://...."
details {
email: "email@gmail.com",
telephone: "3456..."
}
}
*表的列名与对象属性名相同(例如:名称、图片等)
伙计们,我的代码有什么问题?我如何正确地将查询响应的行编码为JSON数组
编辑:
foreach ($db->query('SELECT * from mydb.UserTable') as $sqlresp) {
$rows = array();
while($r = mysqli_fetch_assoc($sqlresp)) {
$rows['users'][] = $r;
}
print json_encode($rows);
}
while($r = mysqli_fetch_assoc($sqlresp)) {
我需要数组,因为我需要将此数组发送到Javascript函数。因此,我需要JSON数组格式的查询,我建议将查询放在这样的循环中会导致问题,也许像这样更传统的方法会有所帮助
$sqlresp=$db->query('SELECT * from mydb.UserTable');
if( $sqlresp ){
$rows = array();
while( $r = mysqli_fetch_assoc( $sqlresp ) ) {
$rows['users'][] = $r;
}
print json_encode( $rows );
}
下面的内容对我很有用,所以可能与您的db连接对象有关
$dbhost = 'localhost';
$dbuser = 'root';
$dbpwd = 'xxx';
$dbname = 'experiments';
$db = new mysqli( $dbhost, $dbuser, $dbpwd, $dbname );
$result=$db->query('select * from `users` limit 10');
if( $result ){
$rows=array();
while( $rs = mysqli_fetch_assoc( $result ) ){
$rows['users'][]=$rs;
}
print json_encode( $rows );
}
输出(测试表中只有3个用户):
我建议将查询放在这样一个循环中会导致问题,也许像这样一种更传统的方法会有所帮助
$sqlresp=$db->query('SELECT * from mydb.UserTable');
if( $sqlresp ){
$rows = array();
while( $r = mysqli_fetch_assoc( $sqlresp ) ) {
$rows['users'][] = $r;
}
print json_encode( $rows );
}
下面的内容对我很有用,所以可能与您的db连接对象有关
$dbhost = 'localhost';
$dbuser = 'root';
$dbpwd = 'xxx';
$dbname = 'experiments';
$db = new mysqli( $dbhost, $dbuser, $dbpwd, $dbname );
$result=$db->query('select * from `users` limit 10');
if( $result ){
$rows=array();
while( $rs = mysqli_fetch_assoc( $result ) ){
$rows['users'][]=$rs;
}
print json_encode( $rows );
}
输出(测试表中只有3个用户):
什么是$db,如果它是mysqli连接资源,那么它将支持 国际海事组织 它是自定义库,返回数组 所以你可以用
echo json_encode( $sqlresp );
什么是$db,如果它是mysqli连接资源,那么它将支持 国际海事组织 它是自定义库,返回数组 所以你可以用
echo json_encode( $sqlresp );
这给了我一个错误:“警告:mysqli_fetch_assoc()希望参数1是mysqli_结果,对象在中给定”并且它指向while循环的代码行这给了我一个错误:“警告:mysqli_fetch_assoc()希望参数1是mysqli_结果,对象在中给定”它指向while循环的代码行是的,它是连接资源。您能在查询行之后显示其余代码吗?while循环,etc
$sqlresp=$db->query('SELECT*from mydb.UserTable');如果($sqlresp){$rows=array();而($r=$sqlresp->fetch_assoc()){$rows['users'][=$r;}打印json_encode($rows);}
将其用于迭代$r=$sqlresp->fetch_assoc()
是,这是连接资源。您能在查询行之后显示其余代码吗?while循环,etc$sqlresp=$db->query('SELECT*from mydb.UserTable');如果($sqlresp){$rows=array();而($r=$sqlresp->fetch_assoc()){$rows['users'][=$r;}打印json_encode($rows);}
将其用于迭代$r=$sqlresp->fetch_assoc()