如何在可变参数函数中使用查询?

时间:2019-06-02 08:29:27

标签: php mysql

带有可变参数的查询仅采用第一个

我试图从foreach循环蚂蚁中回显所有变量参数,但是它有效,但是当我键入查询时,它仅在第一个参数上完成

function SelectDB($Table,$Stm,$Value,...$Selectors){
global $conn;
foreach($Selectors as $Selector){
  //That works and echo all Selectors
  echo $Selector; 
 } 
 }
function SelectDB($Table,$Stm,$Value,...$Selectors){
  global $conn;
   foreach($Selectors as $Selector){
  //Only First Selector is executed in Query
  $Query = $conn->prepare("SELECT $Selector FROM $Table WHERE $Stm = ?");
  $Query->execute(array($Value)); 
  $Fetch = $Query->fetch();
  return $Fetch;
   } 
 }
$S = SelectDB("attended","Id",1,"Id","s","Date","TeacherId");
echo $S['TeacherId']; //Undefined Index
echo $S['Id']; //echo The Id 

我要为每个选择器执行查询

1 个答案:

答案 0 :(得分:1)

您在循环中使用return语句,因此它将在第一次迭代时返回。

使用缓冲区存储数据并返回:

function SelectDB($Table,$Stm,$Value,...$Selectors) {
  global $conn;
  $result = [];
  foreach($Selectors as $Selector) {
    //Only First Selector is executed in Query
    $Query = $conn->prepare("SELECT $Selector FROM $Table WHERE $Stm = ?");
    $Query->execute(array($Value)); 

    // push fetch to result
    $result []= $Query->fetch();
 }

 return $result;
}