Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php JSON输出包含的列数超出了其应包含的列数_Php_Sql_Sql Server_Json - Fatal编程技术网

Php JSON输出包含的列数超出了其应包含的列数

Php JSON输出包含的列数超出了其应包含的列数,php,sql,sql-server,json,Php,Sql,Sql Server,Json,我正在用PHP从MSSQL数据库检索数据,我想将其格式化为JSON,因为这是我开发图表的唯一方法(借助于am charts) 这是我的代码: <?php header('Content-Type: applicaton/json'); $serverName = "server\sqlexpress"; $connectionInfo = array( "Database"=>"myDB", "UID"=>"myUID", "PWD"=>"myPW

我正在用PHP从MSSQL数据库检索数据,我想将其格式化为JSON,因为这是我开发图表的唯一方法(借助于am charts

这是我的代码:

<?php
    header('Content-Type: applicaton/json');
    $serverName = "server\sqlexpress";
    $connectionInfo = array( "Database"=>"myDB", "UID"=>"myUID", "PWD"=>"myPWD");

    $conn = sqlsrv_connect( $serverName, $connectionInfo);
    if( $conn==true ) {
 //echo "Connection established.<br />";
    }
    else
    {
    echo "Connection could not be established.<br />";
    die( print_r( sqlsrv_errors(), true));}

//QUERY

$sql = "SELECT FIRSTNAME, LASTNAME, JOBTYPE from directory ORDER BY JOBTYPE";

$stmt = sqlsrv_query( $conn, $sql);//, $params);

if( $stmt) {
    // echo "Statement executed.<br>\n";
}
else
{
    echo "error in statement execution.\n";
    die (print_r (sqlsrv_errors(), true));
}

//PRINT ROWS
$data = array();
while ($row=sqlsrv_fetch_array($stmt, SQLSRV_FETCH_BOTH))
{
$data[] = $row;
//echo $row['LASTNAME']. ' | ' .$row['FIRSTNAME']. ' | ' .$row['JOBTYPE']. "<br>" ;
}
echo json_encode($data);
?>
但它是这样输出的:

[{"LASTNAME": "MEINE",
   "FIRSTNAME": "KLAUS",
   "JOBTYPE": "LEADVOICE"
},
{"LASTNAME": "SCHENKER",
   "FIRSTNAME": "RUDOLF",
   "JOBTYPE": "RYTHMGUITAR"
}]
[{"0":"KLAUS",
"FIRSTNAME":"KLAUS",
"1":"MEINE",
"LASTNAME":"MEINE",
"2":" LEADVOICE",
"JOBTYPE":" LEADVOICE"
},
{"0":"RUDOLF",
"FIRSTNAME":"RUDOLF",
"1":"SCHENKER",
"LASTNAME":"SCHENKER",
"2":" RYTHMGUITAR",
"JOBTYPE":" RYTHMGUITAR"
}]
发生了什么以及为什么


提前谢谢

只需在第行下方替换即可

$data[] = $row;


非常感谢你,真是妙极了!所以,如果我检索另一个带有其他字段的表,我必须像您的示例那样执行,对吗?是的,当您希望存储数据库表中的一些值时,请遵循相同的操作。
$row_data['LASTNAME'] = $row['LASTNAME'];
$row_data['FIRSTNAME] = $row['FIRSTNAME'];
$row_data['JOBTYPE'] = $row['JOBTYPE'];

array_push($data,$row_data);