У меня есть такая таблица данных
Я хочу получить данные и превратить их в json из этой таблицы!У меня есть функция ниже с именем getDatabyDate () в файле post.php, где я запускаю запрос.Я отправил запрос Post на сервер {"dateID" : "10"}
, теперь сервер даст мне ответ json, выполнив запрос из этой таблицы.В классе post.php функция getDatabyDate () возвращает ответ json, но проблема заключается в том, что всякий раз, когда я отправляю запрос на публикацию, я получаю Fatal error: Uncaught Error: Call to a member function rowCount() on bool in D:\xampp\htdocs\getDatabyDate.php:25
это сообщение об ошибке.я отправлю запрос на публикацию в файле getDatabyDate.php. Я отправляю запрос json, но не получаю ответ json.Я новичок и не понимаю, в чем проблема.
getDatabyDate.php класс здесь: -
<?php
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Access-Control-Allow-Headers,Content-Type,Access-Control-Allow-Methods,Authorization,X-Requested-with');
include 'database.php';
include 'post.php';
//db connect
$database = new database();
$db = $database->connect();
//
$post = new post($db);
$data = json_decode(file_get_contents("php://input"));
$post->dateID = $data->dateID;
//get post
$result = $post->getDataByDate();
$num = $result->rowCount();
if($num >0 ){
//post array
$post_arr = array();
$post_arr['data'] = array();
while($row = $result->fetch(PDO::FETCH_ASSOC)){
extract($row);
$post_item = array (
'id' => $id,
'dateID' => $dateID,
'headline' => $headline,
'reporter' => $reporter,
'news' => $news,
'thumbnail' => $thumbnail
);
//push data
array_push($post_arr['data'],$post_item);
}
//turn into json
echo json_encode($post_arr);
}else{
echo json_encode(
array('message' => 'No post found')
) ;
}
?>
Вот моя функция запроса post.php: -
<?php
class post{
private $conn;
private $table = 'dates';
public $dateID;
public function __construct($db){
$this->conn = $db;
}
public function getDataByDate(){
try{
$query = 'SELECT * FROM breakingnew WHERE dateID = :dateID';
//prepare statement
$statement = $this->conn->prepare($query);
$this->dateID = htmlspecialchars(strip_tags($this->dateID));
$statement->bindParam(":dateID",$this->dateID);
if ($statement->execute()) {
# code...
return true;
}
printf("Error: %s. \n",$statement->error);
return false;
}catch(PDOException $e)
{
echo "could not connect to table " . $e->getMessage() ;
}
return $statement;
}
public function readDate(){
try
{
$query = 'SELECT * FROM dates';
$statement = $this->conn->query($query);
}catch(PDOException $e)
{
echo "could not connect to table".$e->getMessage() ;
}
// $statement->execute();
return $statement;
}
}
?>
Мой класс database.php: -
<?php
class Database{
private $db_name = 'newsextended';
private $host = 'localhost';
private $username = 'root';
private $password = '';
private $conn;
public function connect(){
$this->conn = null;
try{
$dsn = 'mysql:host='.$this->host.';dbname='.$this->db_name;
$this->conn = new PDO($dsn,$this->username,$this->password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
//echo "connected";
}catch(PDOException $e){
echo "Connection Error" . $e->getMessage();
echo "busted";
}
return $this->conn;
}
}
?>