我有一个存储过程,它返回以下格式的两列数据,这些数据将用于一系列图表;
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);
如何将第二列中的数组转换为变量?
我在上面的评论中回答了我的问题! 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等等,直到循环结束。