无法获得结果php mysqli选择绑定

时间:2017-08-30 13:46:55

标签: php mysql mysqli

我试图使用mysqli从php中返回mysql的结果集。我尝试了几种不同的方法,但它们要么以错误结束,要么返回空数组。我知道查询是好的,因为我可以在我的数据库管理客户端中运行它,用所需的字符串替换问号,并按预期返回。有没有人看到我错过的东西?看起来它应该对我有用,但显然有些事情是错的。 _(ツ)_ /¯

<?php

class db extends mysqli{

    function __construct(){

        parent::__construct(PUBP_HOST, PUBP_USER, PUBP_PASS, PUBP_DB);

    }


   /* 
   --------------------------------------------------------------------------*/
   function read_agency_phones($agency_in){

        $returnArray = array();

        if($stmt = $this->prepare("SELECT firstname, lastname, agency, phonenumber FROM employees WHERE agency = ?")){

            try{

                $stmt->bind_param('s', $agency_in);
                $stmt->execute();
                $stmt->bind_result($first, $last, $agency, $phone);



                while($stmt->fetch()){

                    $returnArray[] = array(
                        'first_name'    => $first,
                        'last_name'     => $last,
                        'agency'        => $agency,
                        'phonenumber'   => $phone
                    );

                }

                $stmt->free_result();
                $stmt->close();

                return $returnArray;

            } catch (Exception $ex) {

                return $ex->getMessage();

            }

        }

        return 'failed001';


   }

}


$db = new db();

$results = $db->read_agency_phones("SOME_STRING");



echo '<pre>';
echo var_export($results, true);
echo '</pre>';
die;

数据库中的agency字段的类型为VARCHAR(10)。

在管理面板中运行以下查询时,将按预期返回结果:

SELECT firstname, lastname, agency, phonenumber FROM employees WHERE agency = "THE-AGENCY"

0 个答案:

没有答案