php - Query API returning an empty response
Hi guys I'm working for a couple of months with xampp and PHPMyAdmin to send and fetch data from MySQL database on localhost, and since the week I got an empty body response when I send my requests I don't know why I didn't change anything in my PHP code and the thing that frustrates me that that the Select request API is not working all the others work fine update, insert ... and when I run the same query on MySQL database it works fine I will be happy to get some help from u guys. this my code in index.php
$db = new DbOperation();
$Bars = $db->Bars_Listing_name_adress();
if(count($Bars)<=0){
$response['error'] = true;
$response['message'] = 'Nothing found in the database';
}else{
$response['error'] = false;
$response['Bars'] = $Bars;
}
break;
and this the code in dboperations.php
//get the list of the bars name and adresse for the api
public function Bars_Listing_name_adress(){
$stmt = $this->con->prepare("SELECT Bar_Name,Adress,Zip_code,City,Country FROM Bars");
$stmt->execute();
$stmt->bind_result($Bar_Name,$Adress,$Zip_code,$City,$Country );
$Bars = array();
while($stmt->fetch()){
$temp = array();
$temp['Bar_Name'] = $Bar_Name;
$temp['Adress'] = $Adress;
$temp['Zip_code'] = $Zip_code;
$temp['City'] = $City;
$temp['Country'] = $Country;
array_push($Bars, $temp);
}
return $Bars;
and when I call it in Postman
http://localhost/WebApi/v1/?op=Bars_Listing_name_adress
I get an empty response which is weird
POST
http://localhost/WebApi/v1/?op=Bars_Listing_name_adress&=
16:17:11.176
Pretty
Raw
Request Headers:
Content-Type:"application/x-www-form-urlencoded"
cache-control:"no-cache"
Postman-Token:"1093116d-58aa-4933-a571-99e42c0b203d"
User-Agent:"PostmanRuntime/7.6.0"
Accept:"*/*"
Host:"localhost"
accept-encoding:"gzip, deflate"
content-length:""
Response Headers:
Date:"Sat, 31 Oct 2020 15:17:11 GMT"
Server:"Apache/2.4.43 (Unix) OpenSSL/1.1.1g PHP/7.3.16 mod_perl/2.0.8-dev Perl/v5.16.3"
X-Powered-By:"PHP/7.3.16"
Content-Length:"0"
Keep-Alive:"timeout=5, max=100"
Connection:"Keep-Alive"
Content-Type:"text/html; charset=UTF-8"
Response Body:
but when I call any other request in the same PHP file it works so the problem is only happening with select without the where clausal I will be happy to get some help from you guys thx !!
Answer
Solution:
Thanks for your answers. I just solved the problem. It was a decoding problem, I solved it with utf8_encode
:
function utf8ize($d) {
if (is_array($d)) {
foreach ($d as $k => $v) {
$d[$k] = utf8ize($v);
}
} else if (is_string ($d)) {
return utf8_encode($d);
}
return $d;
}
echo json_encode(utf8ize($response));
//echo json_encode($response);
Source