Я хочу попробовать показать свои данные из базы данных с помощью 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();
2
jazuly aja 31 Дек 2017 в 05:16

2 ответа

Лучший ответ

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

Измените имя переменной.

$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
Lawrence Cherone 31 Дек 2017 в 02:21

Поскольку я использую 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
jazuly aja 31 Дек 2017 в 02:33