【问题标题】:Msqli query arrayMsqli 查询数组
【发布时间】:2016-06-17 14:37:32
【问题描述】:

所以我有我的代码

    function GetApi($connection,$UserId){
        global $Apicall;
        $Apicall = array();
        $Apiidquery = mysqli_query($connection, "SELECT ID FROM ` Characterapi`  WHERE UserId = '$UserId'");
        while($results = mysqli_fetch_assoc($Apiidquery)){
            $Apicall[] = $results['ID'];
        }
}

如果我调用这个函数的输出 $Apicall[0] = 3 $Apicall[1] = 11 这就是我想要的信息。但现在我想使用像

这样的功能
  function Keyquery($Apicall,$connection ){
    global $keyidcall, $keyid ,$Vcode;
    $Keyidquery = array();
    $Keyidquery = mysqli_query($connection, "SELECT keyid, Vcode FROM `Characterapi` WHERE ID = '$Apicall'");
    $results = mysqli_fetch_object($Keyidquery);
    $keyid = $results->keyid;
    $Vcode = $results->Vcode;
}

如果我设置 $Apicall ="3"; 则此代码会运行;我遇到的问题是我希望第一个函数在我的数据库中获取与 $userId 关联的所有 ID,然后为每个 Id 运行第二个函数以从该查询中获取两个特定的信息。

【问题讨论】:

  • 循环$Apicall 并使用每个值调用Keyquery()?你不应该真的这样做,最好在一个查询中检索你想要的所有信息然后循环结果 - 即SELECT ... WHERE ID IN (" . implode(',', $Apicall) . ")

标签: php loops variables


【解决方案1】:

针对下面的评论,这是我将使用的解决方案。 但是您应该谨慎使用此方法,因为它不会参数化值,因此未经过清理。

<?php

  function Keyquery($Apicall,$connection ){
    global $keyidcall, $keyid ,$Vcode;

    $string = "ID IN('";
    $string.= implode("','", $Apicall);
    $string.="')";

    $Keyidquery = mysqli_query($connection, "SELECT keyid, Vcode FROM `Characterapi` WHERE ".$string.";");
    $results = mysqli_fetch_object($Keyidquery);
    $keyid = $results->keyid;
    $Vcode = $results->Vcode;
}

?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 2017-04-30
    相关资源
    最近更新 更多