你好我想缩短我的代码,并希望结合两个完全相同的功能。
所以我得到了这个:
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'];
所以,如果有人能说出我做错了什么,我真的很感激。
非常感谢。
答案 0 :(得分: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'] );
甚至更简单
只需返回$check
;
答案 1 :(得分:1)
试试这个:
$db_data = ab($a);
echo $db_data[0];
echo $db_data[1];
答案 2 :(得分: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'];
答案 3 :(得分:0)
list($col_a, $col_b) = ab($a);
echo $col_a;
echo $col_b;