我试图使用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"