1

你好我想缩短我的代码,并想结合两个完全相同的功能。

所以我得到了这个:

function a($a){
    global $db;
    $query = $db->query("SELECT col_a FROM table WHERE Field= '$a' ");
    $check = $query->fetch_assoc();
    $return_a = $check['col_a'];
    return ($return_a);
}
function b($a){
    global $db;
    $query = $db->query("SELECT col_b FROM table WHERE Field= '$a' ");
    $check = $query->fetch_assoc();
    $return_b = $check['col_b'];
    return ($return_b);
}

所以我想我可以将两者合二为一:

function ab($a){
global $db;
$query = $db->query("SELECT col_a, col_b FROM table WHERE Field= '$a' ");
$check = $query->fetch_assoc();
$return_array = array( $check['col_a'], $check['col_b'] );
return ($return_array);
}

这似乎不起作用。我尝试使用以下方法读出数组:

$db_data = ab($a);

echo $db_data['col_a'];
echo $db_data['col_b'];

所以如果有人能告诉我我做错了什么,我真的很感激。

多谢。

4

4 回答 4

1

您没有创建命名数组,因此您的结果使用$db_data[0]和索引$db_data[1]

代替: $return_array = array( $check['col_a'], $check['col_b'] );

和: $return_array = array( 'col_a' => $check['col_a'], 'col_b' => $check['col_b'] );

或者更简单的只是 return $check;

于 2013-02-22T11:56:47.973 回答
1

试试这个 :

$db_data = ab($a);

echo $db_data[0];
echo $db_data[1];
于 2013-02-22T11:57:27.547 回答
1

如果您这样做(与您的代码相同),您可以像访问它一样访问它

function ab($a){
    global $db;
    $query = $db->query("SELECT col_a, col_b FROM table WHERE Field= '$a' ");
    $check = $query->fetch_assoc();
    $return_array = array( $check['col_a'], $check['col_b'] );
    return ($return_array);
}



$db_data = ab($a);

echo $db_data[0]; // will return 'col_a';
echo $db_data[1]; // will return 'col_b';

你应该做这个

function ab($a){
    global $db;
    $query = $db->query("SELECT col_a, col_b FROM table WHERE Field= '$a' ");
    $check = $query->fetch_assoc();
    //$return_array = array( $check['col_a'], $check['col_b'] );
    return ($check);
}

以及何时需要取

$db_data = ab($a);

echo $db_data['col_1'];
echo $db_data['col_1'];
于 2013-02-22T11:58:48.097 回答
0
list($col_a, $col_b) = ab($a);
echo $col_a;
echo $col_b;
于 2013-02-22T11:55:12.477 回答