отображение данных из базы данных с помощью bindParam


Я хочу попытаться показать свои данные из базы данных с помощью bindParam, но я получаю некоторую ошибку.

Исправимая неустранимая ошибка: Объект класса PDOStatement не удалось преобразовать в строку в C:\xampp\htdocs\piratefiles\search.php в строке 15

Вот мой код

$category = htmlentities($_GET['c']);
$query = htmlentities($_GET['q']);

$page = (isset($_GET['page'])) ? $_GET['page'] : 1;
$limit = 20;
$limit_start = ($page - 1) * $limit;

$query = $db->prepare ("SELECT * FROM `posting` WHERE 'category' = :category AND 'file_name' like :query ORDER BY date DESC LIMIT ".$limit_start.",".$limit);

$query->bindParam(":category", $category);
$query->bindParam(":query", $query);

$query->execute();
Author: Magnus Eriksson, 2017-12-31

2 answers

$query был введен пользователем, затем вы назначили его в качестве PDOStatement, а затем передали его обратно в bindParam

Измените имя var.

$category = htmlentities($_GET['c']);
$query = htmlentities($_GET['q']);

$page = (isset($_GET['page'])) ? $_GET['page'] : 1;
$limit = 20;
$limit_start = ($page - 1) * $limit;

$stmt = $db->prepare ("SELECT * FROM `posting` WHERE 'category' = :category AND 'file_name' like :query ORDER BY date DESC LIMIT ".$limit_start.",".$limit);

$stmt->bindParam(":category", $category);
$stmt->bindParam(":query", $query);

$stmt->execute();
 4
Author: Lawrence Cherone, 2017-12-31 02:21:02

Так как я использую LIKE, поэтому нужно создать другую переменную.

$keyword1 = "%".$category."%";
$keyword2 = "%".$query1."%";

Вот полный код.

$category = htmlentities($_GET['c']);
$query1 = htmlentities($_GET['q']);

$page = (isset($_GET['page'])) ? $_GET['page'] : 1;
$limit = 20;
$limit_start = ($page - 1) * $limit;

$query = $db->prepare ("SELECT * FROM `posting` WHERE category LIKE :category AND file_name LIKE :query1 ORDER BY date DESC LIMIT ".$limit_start.",".$limit);

$keyword1 = "%".$category."%";
$keyword2 = "%".$query1."%";

$query->bindParam(":category", $keyword1);
$query->bindParam(":query1", $keyword2);

$query->execute();
 0
Author: jazuly aja, 2017-12-31 02:33:57