Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从批量结果生成私有函数SELECT*?_Php_Mysql_Sql_Function - Fatal编程技术网

Php 如何从批量结果生成私有函数SELECT*?

Php 如何从批量结果生成私有函数SELECT*?,php,mysql,sql,function,Php,Mysql,Sql,Function,我创建了两个从数据库下载变量的函数。 我不知道为什么,但两个查询返回相同的结果。也许有一个我不知道的解决办法——但我什么也没想到。你能帮我吗 public function A($A, $B) { if(self::X() && count(self::X()) > NULL) { $id2 = self::DB2(); $this->id2 = $id2;

我创建了两个从数据库下载变量的函数。 我不知道为什么,但两个查询返回相同的结果。也许有一个我不知道的解决办法——但我什么也没想到。你能帮我吗

    public function A($A, $B) 
    {
        if(self::X() && count(self::X()) > NULL) 
        {
            $id2 = self::DB2();
            $this->id2 = $id2;

            $id3 = self::DB2();
            $this->id3 = $id3;

            self::Y();
            return true;

        } 
        else 
        {
            return false;           
        }       
    }
    private function DB2() 
    {    
            $id2 = BDR::selectBySQL("x1","SELECT * FROM id2 WHERE id='".$this->id1."' LIMIT 1");
            foreach($id2 as $id2) 
            {
                $id2 = $id2['id2'];

            }
            $id3 = BDR::selectBySQL("x1","SELECT * FROM id3 WHERE id='".$this->id3."' LIMIT 1");
            foreach($id3 as $id3) 
            {
                $id3 = $id3['id3'];

            }
            return $id2;
            return $id3;


    }
注意getByIdUz()返回的总是$id2。。第二次返回($id3)从未到达。 如果希望函数retunr为两个值,则可以返回一个数组,例如:

 private function getByIdUz() 
{    
        $id2 = BDR::selectBySQL("x1","SELECT * FROM id2 WHERE id='".$this->id1."' LIMIT 1");
        foreach($id2 as $id2) 
        {
            $id2 = $id2['id2'];

        }
        $id3 = BDR::selectBySQL("x1","SELECT * FROM id3 WHERE id='".$this->id3."' LIMIT 1");
        foreach($id3 as $id3) 
        {
            $id3 = $id3['id3'];

        }
        return ['id2'=>$id2, 'id3', $id3];

}
你可以用

 $myArray = getByIdUz();

 $myId2 = $myArray['id2'];
 $myId3 = $myArray['id3'];

在您的

getByIdUz()中,始终返回$id2。。第二个返回($id3)从未到达。他返回给我,但只是两者都相同。你还应该显示BDR::selectBySQL函数。因为在你的代码中,不清楚查询是否执行,也不清楚函数中使用的$this->id1和$this->id3的内容。是的,当然,数组,谢谢先生,我会加上你的声音,但我只能在我获得15个声誉后才能加上