У меня есть простой поиск form
, который я использую для отправки запроса POST
на мой скрипт php с использованием AJAX. Я хочу, чтобы скрипт выполнял поиск моей базы данных по ключевому слову в столбце заголовка и возвращал строки, где он их нашел. Опубликованные данные выглядят так: "searchword=test1"
, где test1
в содержании моего ввода текста.PDO возвращает пустой массив как результат
У меня есть 2 строки в моей базе данных, есть заголовок test1 и еще один test2. Если я сделаю SELECT * FROM articles
, я могу видеть результаты в порядке. Если я нахожу SELECT * FROM articles WHERE title LIKE 'test1';
в консоль, я получаю правильный результат, но мой PHP-скрипт возвращает пустой массив.
Не знаю, что я делаю неправильно здесь, любая помощь приветствуется.
мой PHP:
try {
$hostname = "localhost";
$username = "root";
$password = "";
$db = new PDO("mysql:host=$hostname;dbname=topdecka_PTC",$username, $password);
if (!empty($_POST["searchword"])) {
$searchword = $_POST["searchword"];
$query = $db->prepare("SELECT * FROM articles WHERE title LIKE %:seachword%");
$query->execute(array(':searchword' => $searchword));
$result = $query->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);
die();
}
else {
$query = $db->prepare('SELECT * FROM articles');
$query->execute();
$result = $query->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);
die();
}
} catch (PDOException $e) {
echo "Error!: " . $e->getMessage() . "<br/>";
die();
}
'$ _POST {" searchword "}' синтаксическая ошибка и для всех ваших POST-массивов; *для одной вещи*. Читайте на суперглобальных http://php.net/manual/en/language.variables.superglobals.php более конкретно для '$ _POST'. –
Используйте это => http://php.net/manual/en/function.error-reporting.php и http://php.net/manual/en/pdo.error-handling.php –
изменили фигурные фигурные скобки на [], все равно работать не будет. Я не получаю никаких ошибок, но он просто возвращает пустой массив вместо строки, в которой столбец заголовка «test1» –