Следующая функция
try{ $query = $this->pdo->prepare("SELECT * FROM bookings WHERE TourID = ? AND dTourDate = ? and Status NOT LIKE 'Cancelled'"); $query->execute(array($tourId,$date)); $result = $query->fetchAll(PDO::FETCH_ASSOC); if(count($result)<1) $this->error("'Booking' Not Found.",$this->errCode->sqlNotBooking); $this->success("Booking List Success.",(array) $result); }
возвращает мне это:
TotalPrice":"0.00","GuestName":"Bryan Pedrochi<\/span>","ContactNumber":"042214"...
Столбец GuestName в mysql выглядит так:
<span style="background-color: rgb(255, 255, 0);">Bryan Pedrochi</span>
Я не очень хорошо разбираюсь в программировании, и я не уверен, как это сделать, но я считаю, что мне нужно поставить обратную косую черту перед двойной цитатой, чтобы иметь правильный результат, подобный этому
TotalPrice":"0.00","GuestName":"<style=\"background-color: rgb(255, 255, 0);\">Bryan Pedrochi</span>","ContactNumber":"042214"...
Итак, я попробовал
$add= $query->fetchAll(PDO::FETCH_ASSOC); $string=serialize($add); $result=addslashes($string);
Я пытался
$this->success("Booking List Success.",(array) htmlentities($result));
но ничего не работает. Можно ли возвращать html-элементы и обратные косые черты в результатах json?
вам нужно снять метки html.
try{ $query = $this->pdo->prepare("SELECT * FROM bookings WHERE TourID = ? AND dTourDate = ? and Status NOT LIKE 'Cancelled'"); $query->execute(array($tourId,$date)); $result = $query->fetchAll(PDO::FETCH_ASSOC); $resultStrip = json_decode(strip_tags(json_encode($result)), true); if(count($resultStrip )<1) $this->error("'Booking' Not Found.",$this->errCode->sqlNotBooking); $this->success("Booking List Success.",(array) $resultStrip); }
Надеюсь, поможет.