我有一个存储过程,该存储过程以以下格式返回两列数据,这些数据将用于一系列图表;
Minutes, [6,15,44,12,15,14,9,5,4,11]
Hours, [41,5,28,7,5,4,19,8,25,6]
Weeks, [1,1,1,1,2,1,2,3,1,1]
我可以使用以下命令在屏幕上方返回所有这些值:
$result = sqlsrv_query($conn2, $sql, $params) or die( print_r( sqlsrv_errors(), true)) ;
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_NUMERIC) ) {
echo $row[0].", ".$row[1]."<br />";
}
我可以使用以下方式将分钟,小时和周设置为变量:
$row = sqlsrv_fetch($result, SQLSRV_SCROLL_FIRST);
$v1 = sqlsrv_get_field( $result, 0);
$row = sqlsrv_fetch($result, SQLSRV_SCROLL_NEXT);
$v2 = sqlsrv_get_field( $result, 0);
$row = sqlsrv_fetch($result, SQLSRV_SCROLL_NEXT);
$v3 = sqlsrv_get_field( $result, 0);
如何将数组从第二列转换为变量?
答案 0 :(得分:0)
我在上面的评论中回答了我的问题! DOH!
这是一个数组,而不是字符串,因此使用原始代码,我只需要将其更改为;
$row = sqlsrv_fetch($result, SQLSRV_SCROLL_FIRST);
$v1 = sqlsrv_get_field( $result, 0);
$v2 = sqlsrv_fetch_array( $result, 1);
$row = sqlsrv_fetch($result, SQLSRV_SCROLL_NEXT);
$v3 = sqlsrv_get_field( $result, 0);
$v4 = sqlsrv_fetch_array( $result, 1);
$row = sqlsrv_fetch($result, SQLSRV_SCROLL_NEXT);
$v5 = sqlsrv_get_field( $result, 0);
$v6 = sqlsrv_fetch_array( $result, 1);
最终版本会在while循环中自动递增变量名;
$i=0;
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_NUMERIC) ) {
${'name'.$i} = $row[0]."<br />";
${'value'.$i} = $row[1]."<br />";
$i++;
}
$ name1,$ value1,$ name2,$ value2等,直到循环结束。